webpack-stats.json 1.3 MB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856
  1. {
  2. "errors": [],
  3. "warnings": [],
  4. "version": "4.35.3",
  5. "hash": "ab0fd0436b23f82284a8",
  6. "time": 2526,
  7. "builtAt": 1568935417262,
  8. "publicPath": "",
  9. "outputPath": "C:\\Repos\\Babylon.js\\.temp/testsES6Modules",
  10. "assetsByChunkName": {
  11. "thinEngineOnly": "thinEngineOnly.js"
  12. },
  13. "assets": [
  14. {
  15. "name": "thinEngineOnly.js",
  16. "size": 426580,
  17. "chunks": [
  18. "thinEngineOnly"
  19. ],
  20. "chunkNames": [
  21. "thinEngineOnly"
  22. ],
  23. "emitted": true
  24. }
  25. ],
  26. "filteredAssets": 0,
  27. "entrypoints": {
  28. "thinEngineOnly": {
  29. "chunks": [
  30. "thinEngineOnly"
  31. ],
  32. "assets": [
  33. "thinEngineOnly.js"
  34. ],
  35. "children": {},
  36. "childAssets": {}
  37. }
  38. },
  39. "namedChunkGroups": {
  40. "thinEngineOnly": {
  41. "chunks": [
  42. "thinEngineOnly"
  43. ],
  44. "assets": [
  45. "thinEngineOnly.js"
  46. ],
  47. "children": {},
  48. "childAssets": {}
  49. }
  50. },
  51. "chunks": [
  52. {
  53. "id": "thinEngineOnly",
  54. "rendered": true,
  55. "initial": true,
  56. "entry": true,
  57. "size": 374721,
  58. "names": [
  59. "thinEngineOnly"
  60. ],
  61. "files": [
  62. "thinEngineOnly.js"
  63. ],
  64. "hash": "78e8df7e120bd660d5a3",
  65. "siblings": [],
  66. "parents": [],
  67. "children": [],
  68. "childrenByOrder": {},
  69. "modules": [
  70. {
  71. "id": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js",
  72. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineAndOperator.js",
  73. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js",
  74. "index": 18,
  75. "index2": 14,
  76. "size": 702,
  77. "cacheable": true,
  78. "built": true,
  79. "optional": false,
  80. "prefetched": false,
  81. "chunks": [
  82. "thinEngineOnly"
  83. ],
  84. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  85. "issuerId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  86. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  87. "issuerPath": [
  88. {
  89. "id": "./thinEngineOnly.ts",
  90. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  91. "name": "./thinEngineOnly.ts",
  92. "profile": {
  93. "factory": 42,
  94. "building": 2115
  95. }
  96. },
  97. {
  98. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  99. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  100. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  101. "profile": {
  102. "factory": 6,
  103. "building": 110
  104. }
  105. },
  106. {
  107. "id": "../../.temp/packageES6Dev/core/Materials/effect.js",
  108. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  109. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  110. "profile": {
  111. "factory": 59,
  112. "building": 41,
  113. "dependencies": 4
  114. }
  115. },
  116. {
  117. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  118. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  119. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  120. "profile": {
  121. "factory": 25,
  122. "building": 9,
  123. "dependencies": 2
  124. }
  125. }
  126. ],
  127. "profile": {
  128. "factory": 6,
  129. "building": 12,
  130. "dependencies": 4
  131. },
  132. "failed": false,
  133. "errors": 0,
  134. "warnings": 0,
  135. "assets": [],
  136. "reasons": [
  137. {
  138. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  139. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  140. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  141. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  142. "type": "harmony side effect evaluation",
  143. "userRequest": "./Expressions/Operators/shaderDefineAndOperator",
  144. "loc": "7:0-90"
  145. },
  146. {
  147. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  148. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  149. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  150. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  151. "type": "harmony import specifier",
  152. "userRequest": "./Expressions/Operators/shaderDefineAndOperator",
  153. "loc": "66:38-61"
  154. }
  155. ],
  156. "providedExports": [
  157. "ShaderDefineAndOperator"
  158. ],
  159. "optimizationBailout": [],
  160. "depth": 4,
  161. "source": "import * as tslib_1 from \"tslib\";\r\nimport { ShaderDefineExpression } from '../shaderDefineExpression';\r\n/** @hidden */\r\nvar ShaderDefineAndOperator = /** @class */ (function (_super) {\r\n tslib_1.__extends(ShaderDefineAndOperator, _super);\r\n function ShaderDefineAndOperator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ShaderDefineAndOperator.prototype.isTrue = function (preprocessors) {\r\n return this.leftOperand.isTrue(preprocessors) && this.rightOperand.isTrue(preprocessors);\r\n };\r\n return ShaderDefineAndOperator;\r\n}(ShaderDefineExpression));\r\nexport { ShaderDefineAndOperator };\r\n//# sourceMappingURL=shaderDefineAndOperator.js.map"
  162. },
  163. {
  164. "id": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js",
  165. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineArithmeticOperator.js",
  166. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js",
  167. "index": 19,
  168. "index2": 15,
  169. "size": 1546,
  170. "cacheable": true,
  171. "built": true,
  172. "optional": false,
  173. "prefetched": false,
  174. "chunks": [
  175. "thinEngineOnly"
  176. ],
  177. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  178. "issuerId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  179. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  180. "issuerPath": [
  181. {
  182. "id": "./thinEngineOnly.ts",
  183. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  184. "name": "./thinEngineOnly.ts",
  185. "profile": {
  186. "factory": 42,
  187. "building": 2115
  188. }
  189. },
  190. {
  191. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  192. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  193. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  194. "profile": {
  195. "factory": 6,
  196. "building": 110
  197. }
  198. },
  199. {
  200. "id": "../../.temp/packageES6Dev/core/Materials/effect.js",
  201. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  202. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  203. "profile": {
  204. "factory": 59,
  205. "building": 41,
  206. "dependencies": 4
  207. }
  208. },
  209. {
  210. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  211. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  212. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  213. "profile": {
  214. "factory": 25,
  215. "building": 9,
  216. "dependencies": 2
  217. }
  218. }
  219. ],
  220. "profile": {
  221. "factory": 6,
  222. "building": 12,
  223. "dependencies": 4
  224. },
  225. "failed": false,
  226. "errors": 0,
  227. "warnings": 0,
  228. "assets": [],
  229. "reasons": [
  230. {
  231. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  232. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  233. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  234. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  235. "type": "harmony side effect evaluation",
  236. "userRequest": "./Expressions/Operators/shaderDefineArithmeticOperator",
  237. "loc": "8:0-104"
  238. },
  239. {
  240. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  241. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  242. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  243. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  244. "type": "harmony import specifier",
  245. "userRequest": "./Expressions/Operators/shaderDefineArithmeticOperator",
  246. "loc": "59:19-49"
  247. }
  248. ],
  249. "providedExports": [
  250. "ShaderDefineArithmeticOperator"
  251. ],
  252. "optimizationBailout": [],
  253. "depth": 4,
  254. "source": "import * as tslib_1 from \"tslib\";\r\nimport { ShaderDefineExpression } from '../shaderDefineExpression';\r\n/** @hidden */\r\nvar ShaderDefineArithmeticOperator = /** @class */ (function (_super) {\r\n tslib_1.__extends(ShaderDefineArithmeticOperator, _super);\r\n function ShaderDefineArithmeticOperator(define, operand, testValue) {\r\n var _this = _super.call(this) || this;\r\n _this.define = define;\r\n _this.operand = operand;\r\n _this.testValue = testValue;\r\n return _this;\r\n }\r\n ShaderDefineArithmeticOperator.prototype.isTrue = function (preprocessors) {\r\n var value = preprocessors[this.define];\r\n if (value === undefined) {\r\n return false;\r\n }\r\n var condition = false;\r\n var left = parseInt(value);\r\n var right = parseInt(this.testValue);\r\n switch (this.operand) {\r\n case \">\":\r\n condition = left > right;\r\n break;\r\n case \"<\":\r\n condition = left < right;\r\n break;\r\n case \"<=\":\r\n condition = left <= right;\r\n break;\r\n case \">=\":\r\n condition = left >= right;\r\n break;\r\n case \"==\":\r\n condition = left === right;\r\n break;\r\n }\r\n return condition;\r\n };\r\n return ShaderDefineArithmeticOperator;\r\n}(ShaderDefineExpression));\r\nexport { ShaderDefineArithmeticOperator };\r\n//# sourceMappingURL=shaderDefineArithmeticOperator.js.map"
  255. },
  256. {
  257. "id": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  258. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineIsDefinedOperator.js",
  259. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  260. "index": 15,
  261. "index2": 12,
  262. "size": 924,
  263. "cacheable": true,
  264. "built": true,
  265. "optional": false,
  266. "prefetched": false,
  267. "chunks": [
  268. "thinEngineOnly"
  269. ],
  270. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  271. "issuerId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  272. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  273. "issuerPath": [
  274. {
  275. "id": "./thinEngineOnly.ts",
  276. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  277. "name": "./thinEngineOnly.ts",
  278. "profile": {
  279. "factory": 42,
  280. "building": 2115
  281. }
  282. },
  283. {
  284. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  285. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  286. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  287. "profile": {
  288. "factory": 6,
  289. "building": 110
  290. }
  291. },
  292. {
  293. "id": "../../.temp/packageES6Dev/core/Materials/effect.js",
  294. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  295. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  296. "profile": {
  297. "factory": 59,
  298. "building": 41,
  299. "dependencies": 4
  300. }
  301. },
  302. {
  303. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  304. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  305. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  306. "profile": {
  307. "factory": 25,
  308. "building": 9,
  309. "dependencies": 2
  310. }
  311. }
  312. ],
  313. "profile": {
  314. "factory": 6,
  315. "building": 12,
  316. "dependencies": 4
  317. },
  318. "failed": false,
  319. "errors": 0,
  320. "warnings": 0,
  321. "assets": [],
  322. "reasons": [
  323. {
  324. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  325. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  326. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  327. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  328. "type": "harmony side effect evaluation",
  329. "userRequest": "./Expressions/Operators/shaderDefineIsDefinedOperator",
  330. "loc": "5:0-102"
  331. },
  332. {
  333. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  334. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  335. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  336. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  337. "type": "harmony import specifier",
  338. "userRequest": "./Expressions/Operators/shaderDefineIsDefinedOperator",
  339. "loc": "42:23-52"
  340. },
  341. {
  342. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  343. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  344. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  345. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  346. "type": "harmony import specifier",
  347. "userRequest": "./Expressions/Operators/shaderDefineIsDefinedOperator",
  348. "loc": "55:23-52"
  349. },
  350. {
  351. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  352. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  353. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  354. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  355. "type": "harmony import specifier",
  356. "userRequest": "./Expressions/Operators/shaderDefineIsDefinedOperator",
  357. "loc": "91:38-67"
  358. },
  359. {
  360. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  361. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  362. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  363. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  364. "type": "harmony import specifier",
  365. "userRequest": "./Expressions/Operators/shaderDefineIsDefinedOperator",
  366. "loc": "94:38-67"
  367. }
  368. ],
  369. "providedExports": [
  370. "ShaderDefineIsDefinedOperator"
  371. ],
  372. "optimizationBailout": [],
  373. "depth": 4,
  374. "source": "import * as tslib_1 from \"tslib\";\r\nimport { ShaderDefineExpression } from \"../shaderDefineExpression\";\r\n/** @hidden */\r\nvar ShaderDefineIsDefinedOperator = /** @class */ (function (_super) {\r\n tslib_1.__extends(ShaderDefineIsDefinedOperator, _super);\r\n function ShaderDefineIsDefinedOperator(define, not) {\r\n if (not === void 0) { not = false; }\r\n var _this = _super.call(this) || this;\r\n _this.define = define;\r\n _this.not = not;\r\n return _this;\r\n }\r\n ShaderDefineIsDefinedOperator.prototype.isTrue = function (preprocessors) {\r\n var condition = preprocessors[this.define] !== undefined;\r\n if (this.not) {\r\n condition = !condition;\r\n }\r\n return condition;\r\n };\r\n return ShaderDefineIsDefinedOperator;\r\n}(ShaderDefineExpression));\r\nexport { ShaderDefineIsDefinedOperator };\r\n//# sourceMappingURL=shaderDefineIsDefinedOperator.js.map"
  375. },
  376. {
  377. "id": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js",
  378. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineOrOperator.js",
  379. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js",
  380. "index": 17,
  381. "index2": 13,
  382. "size": 695,
  383. "cacheable": true,
  384. "built": true,
  385. "optional": false,
  386. "prefetched": false,
  387. "chunks": [
  388. "thinEngineOnly"
  389. ],
  390. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  391. "issuerId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  392. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  393. "issuerPath": [
  394. {
  395. "id": "./thinEngineOnly.ts",
  396. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  397. "name": "./thinEngineOnly.ts",
  398. "profile": {
  399. "factory": 42,
  400. "building": 2115
  401. }
  402. },
  403. {
  404. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  405. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  406. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  407. "profile": {
  408. "factory": 6,
  409. "building": 110
  410. }
  411. },
  412. {
  413. "id": "../../.temp/packageES6Dev/core/Materials/effect.js",
  414. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  415. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  416. "profile": {
  417. "factory": 59,
  418. "building": 41,
  419. "dependencies": 4
  420. }
  421. },
  422. {
  423. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  424. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  425. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  426. "profile": {
  427. "factory": 25,
  428. "building": 9,
  429. "dependencies": 2
  430. }
  431. }
  432. ],
  433. "profile": {
  434. "factory": 6,
  435. "building": 12,
  436. "dependencies": 4
  437. },
  438. "failed": false,
  439. "errors": 0,
  440. "warnings": 0,
  441. "assets": [],
  442. "reasons": [
  443. {
  444. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  445. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  446. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  447. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  448. "type": "harmony side effect evaluation",
  449. "userRequest": "./Expressions/Operators/shaderDefineOrOperator",
  450. "loc": "6:0-88"
  451. },
  452. {
  453. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  454. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  455. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  456. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  457. "type": "harmony import specifier",
  458. "userRequest": "./Expressions/Operators/shaderDefineOrOperator",
  459. "loc": "78:33-55"
  460. }
  461. ],
  462. "providedExports": [
  463. "ShaderDefineOrOperator"
  464. ],
  465. "optimizationBailout": [],
  466. "depth": 4,
  467. "source": "import * as tslib_1 from \"tslib\";\r\nimport { ShaderDefineExpression } from '../shaderDefineExpression';\r\n/** @hidden */\r\nvar ShaderDefineOrOperator = /** @class */ (function (_super) {\r\n tslib_1.__extends(ShaderDefineOrOperator, _super);\r\n function ShaderDefineOrOperator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ShaderDefineOrOperator.prototype.isTrue = function (preprocessors) {\r\n return this.leftOperand.isTrue(preprocessors) || this.rightOperand.isTrue(preprocessors);\r\n };\r\n return ShaderDefineOrOperator;\r\n}(ShaderDefineExpression));\r\nexport { ShaderDefineOrOperator };\r\n//# sourceMappingURL=shaderDefineOrOperator.js.map"
  468. },
  469. {
  470. "id": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/shaderDefineExpression.js",
  471. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\shaderDefineExpression.js",
  472. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/shaderDefineExpression.js",
  473. "index": 16,
  474. "index2": 11,
  475. "size": 356,
  476. "cacheable": true,
  477. "built": true,
  478. "optional": false,
  479. "prefetched": false,
  480. "chunks": [
  481. "thinEngineOnly"
  482. ],
  483. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineIsDefinedOperator.js",
  484. "issuerId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  485. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  486. "issuerPath": [
  487. {
  488. "id": "./thinEngineOnly.ts",
  489. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  490. "name": "./thinEngineOnly.ts",
  491. "profile": {
  492. "factory": 42,
  493. "building": 2115
  494. }
  495. },
  496. {
  497. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  498. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  499. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  500. "profile": {
  501. "factory": 6,
  502. "building": 110
  503. }
  504. },
  505. {
  506. "id": "../../.temp/packageES6Dev/core/Materials/effect.js",
  507. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  508. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  509. "profile": {
  510. "factory": 59,
  511. "building": 41,
  512. "dependencies": 4
  513. }
  514. },
  515. {
  516. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  517. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  518. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  519. "profile": {
  520. "factory": 25,
  521. "building": 9,
  522. "dependencies": 2
  523. }
  524. },
  525. {
  526. "id": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  527. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineIsDefinedOperator.js",
  528. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  529. "profile": {
  530. "factory": 6,
  531. "building": 12,
  532. "dependencies": 4
  533. }
  534. }
  535. ],
  536. "profile": {
  537. "factory": 5,
  538. "building": 1
  539. },
  540. "failed": false,
  541. "errors": 0,
  542. "warnings": 0,
  543. "assets": [],
  544. "reasons": [
  545. {
  546. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js",
  547. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineAndOperator.js",
  548. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js",
  549. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js",
  550. "type": "harmony side effect evaluation",
  551. "userRequest": "../shaderDefineExpression",
  552. "loc": "2:0-67"
  553. },
  554. {
  555. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js",
  556. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineAndOperator.js",
  557. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js",
  558. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js",
  559. "type": "harmony import specifier",
  560. "userRequest": "../shaderDefineExpression",
  561. "loc": "13:2-24"
  562. },
  563. {
  564. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js",
  565. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineArithmeticOperator.js",
  566. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js",
  567. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js",
  568. "type": "harmony side effect evaluation",
  569. "userRequest": "../shaderDefineExpression",
  570. "loc": "2:0-67"
  571. },
  572. {
  573. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js",
  574. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineArithmeticOperator.js",
  575. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js",
  576. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js",
  577. "type": "harmony import specifier",
  578. "userRequest": "../shaderDefineExpression",
  579. "loc": "41:2-24"
  580. },
  581. {
  582. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  583. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineIsDefinedOperator.js",
  584. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  585. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  586. "type": "harmony side effect evaluation",
  587. "userRequest": "../shaderDefineExpression",
  588. "loc": "2:0-67"
  589. },
  590. {
  591. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  592. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineIsDefinedOperator.js",
  593. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  594. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  595. "type": "harmony import specifier",
  596. "userRequest": "../shaderDefineExpression",
  597. "loc": "21:2-24"
  598. },
  599. {
  600. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js",
  601. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineOrOperator.js",
  602. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js",
  603. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js",
  604. "type": "harmony side effect evaluation",
  605. "userRequest": "../shaderDefineExpression",
  606. "loc": "2:0-67"
  607. },
  608. {
  609. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js",
  610. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineOrOperator.js",
  611. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js",
  612. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js",
  613. "type": "harmony import specifier",
  614. "userRequest": "../shaderDefineExpression",
  615. "loc": "13:2-24"
  616. }
  617. ],
  618. "providedExports": [
  619. "ShaderDefineExpression"
  620. ],
  621. "optimizationBailout": [],
  622. "depth": 5,
  623. "source": "/** @hidden */\r\nvar ShaderDefineExpression = /** @class */ (function () {\r\n function ShaderDefineExpression() {\r\n }\r\n ShaderDefineExpression.prototype.isTrue = function (preprocessors) {\r\n return true;\r\n };\r\n return ShaderDefineExpression;\r\n}());\r\nexport { ShaderDefineExpression };\r\n//# sourceMappingURL=shaderDefineExpression.js.map"
  624. },
  625. {
  626. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeConditionNode.js",
  627. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeConditionNode.js",
  628. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeConditionNode.js",
  629. "index": 13,
  630. "index2": 9,
  631. "size": 860,
  632. "cacheable": true,
  633. "built": true,
  634. "optional": false,
  635. "prefetched": false,
  636. "chunks": [
  637. "thinEngineOnly"
  638. ],
  639. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  640. "issuerId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  641. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  642. "issuerPath": [
  643. {
  644. "id": "./thinEngineOnly.ts",
  645. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  646. "name": "./thinEngineOnly.ts",
  647. "profile": {
  648. "factory": 42,
  649. "building": 2115
  650. }
  651. },
  652. {
  653. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  654. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  655. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  656. "profile": {
  657. "factory": 6,
  658. "building": 110
  659. }
  660. },
  661. {
  662. "id": "../../.temp/packageES6Dev/core/Materials/effect.js",
  663. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  664. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  665. "profile": {
  666. "factory": 59,
  667. "building": 41,
  668. "dependencies": 4
  669. }
  670. },
  671. {
  672. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  673. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  674. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  675. "profile": {
  676. "factory": 25,
  677. "building": 9,
  678. "dependencies": 2
  679. }
  680. }
  681. ],
  682. "profile": {
  683. "factory": 6,
  684. "building": 12,
  685. "dependencies": 4
  686. },
  687. "failed": false,
  688. "errors": 0,
  689. "warnings": 0,
  690. "assets": [],
  691. "reasons": [
  692. {
  693. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  694. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  695. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  696. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  697. "type": "harmony side effect evaluation",
  698. "userRequest": "./shaderCodeConditionNode",
  699. "loc": "3:0-68"
  700. },
  701. {
  702. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  703. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  704. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  705. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  706. "type": "harmony import specifier",
  707. "userRequest": "./shaderCodeConditionNode",
  708. "loc": "129:46-69"
  709. },
  710. {
  711. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  712. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  713. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  714. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  715. "type": "harmony import specifier",
  716. "userRequest": "./shaderCodeConditionNode",
  717. "loc": "142:46-69"
  718. },
  719. {
  720. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  721. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  722. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  723. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  724. "type": "harmony import specifier",
  725. "userRequest": "./shaderCodeConditionNode",
  726. "loc": "150:46-69"
  727. }
  728. ],
  729. "providedExports": [
  730. "ShaderCodeConditionNode"
  731. ],
  732. "optimizationBailout": [],
  733. "depth": 4,
  734. "source": "import * as tslib_1 from \"tslib\";\r\nimport { ShaderCodeNode } from './shaderCodeNode';\r\n/** @hidden */\r\nvar ShaderCodeConditionNode = /** @class */ (function (_super) {\r\n tslib_1.__extends(ShaderCodeConditionNode, _super);\r\n function ShaderCodeConditionNode() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ShaderCodeConditionNode.prototype.process = function (preprocessors, options) {\r\n for (var index = 0; index < this.children.length; index++) {\r\n var node = this.children[index];\r\n if (node.isValid(preprocessors)) {\r\n return node.process(preprocessors, options);\r\n }\r\n }\r\n return \"\";\r\n };\r\n return ShaderCodeConditionNode;\r\n}(ShaderCodeNode));\r\nexport { ShaderCodeConditionNode };\r\n//# sourceMappingURL=shaderCodeConditionNode.js.map"
  735. },
  736. {
  737. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeCursor.js",
  738. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeCursor.js",
  739. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeCursor.js",
  740. "index": 12,
  741. "index2": 8,
  742. "size": 1628,
  743. "cacheable": true,
  744. "built": true,
  745. "optional": false,
  746. "prefetched": false,
  747. "chunks": [
  748. "thinEngineOnly"
  749. ],
  750. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  751. "issuerId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  752. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  753. "issuerPath": [
  754. {
  755. "id": "./thinEngineOnly.ts",
  756. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  757. "name": "./thinEngineOnly.ts",
  758. "profile": {
  759. "factory": 42,
  760. "building": 2115
  761. }
  762. },
  763. {
  764. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  765. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  766. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  767. "profile": {
  768. "factory": 6,
  769. "building": 110
  770. }
  771. },
  772. {
  773. "id": "../../.temp/packageES6Dev/core/Materials/effect.js",
  774. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  775. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  776. "profile": {
  777. "factory": 59,
  778. "building": 41,
  779. "dependencies": 4
  780. }
  781. },
  782. {
  783. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  784. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  785. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  786. "profile": {
  787. "factory": 25,
  788. "building": 9,
  789. "dependencies": 2
  790. }
  791. }
  792. ],
  793. "profile": {
  794. "factory": 6,
  795. "building": 12,
  796. "dependencies": 4
  797. },
  798. "failed": false,
  799. "errors": 0,
  800. "warnings": 0,
  801. "assets": [],
  802. "reasons": [
  803. {
  804. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  805. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  806. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  807. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  808. "type": "harmony side effect evaluation",
  809. "userRequest": "./shaderCodeCursor",
  810. "loc": "2:0-54"
  811. },
  812. {
  813. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  814. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  815. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  816. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  817. "type": "harmony import specifier",
  818. "userRequest": "./shaderCodeCursor",
  819. "loc": "177:25-41"
  820. }
  821. ],
  822. "providedExports": [
  823. "ShaderCodeCursor"
  824. ],
  825. "optimizationBailout": [],
  826. "depth": 4,
  827. "source": "/** @hidden */\r\nvar ShaderCodeCursor = /** @class */ (function () {\r\n function ShaderCodeCursor() {\r\n }\r\n Object.defineProperty(ShaderCodeCursor.prototype, \"currentLine\", {\r\n get: function () {\r\n return this._lines[this.lineIndex];\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ShaderCodeCursor.prototype, \"canRead\", {\r\n get: function () {\r\n return this.lineIndex < this._lines.length - 1;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ShaderCodeCursor.prototype, \"lines\", {\r\n set: function (value) {\r\n this._lines = [];\r\n for (var _i = 0, value_1 = value; _i < value_1.length; _i++) {\r\n var line = value_1[_i];\r\n // Prevent removing line break in macros.\r\n if (line[0] === \"#\") {\r\n this._lines.push(line);\r\n continue;\r\n }\r\n var split = line.split(\";\");\r\n for (var index = 0; index < split.length; index++) {\r\n var subLine = split[index];\r\n subLine = subLine.trim();\r\n if (!subLine) {\r\n continue;\r\n }\r\n this._lines.push(subLine + (index !== split.length - 1 ? \";\" : \"\"));\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return ShaderCodeCursor;\r\n}());\r\nexport { ShaderCodeCursor };\r\n//# sourceMappingURL=shaderCodeCursor.js.map"
  828. },
  829. {
  830. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  831. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeNode.js",
  832. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  833. "index": 10,
  834. "index2": 7,
  835. "size": 2903,
  836. "cacheable": true,
  837. "built": true,
  838. "optional": false,
  839. "prefetched": false,
  840. "chunks": [
  841. "thinEngineOnly"
  842. ],
  843. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  844. "issuerId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  845. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  846. "issuerPath": [
  847. {
  848. "id": "./thinEngineOnly.ts",
  849. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  850. "name": "./thinEngineOnly.ts",
  851. "profile": {
  852. "factory": 42,
  853. "building": 2115
  854. }
  855. },
  856. {
  857. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  858. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  859. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  860. "profile": {
  861. "factory": 6,
  862. "building": 110
  863. }
  864. },
  865. {
  866. "id": "../../.temp/packageES6Dev/core/Materials/effect.js",
  867. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  868. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  869. "profile": {
  870. "factory": 59,
  871. "building": 41,
  872. "dependencies": 4
  873. }
  874. },
  875. {
  876. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  877. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  878. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  879. "profile": {
  880. "factory": 25,
  881. "building": 9,
  882. "dependencies": 2
  883. }
  884. }
  885. ],
  886. "profile": {
  887. "factory": 6,
  888. "building": 12,
  889. "dependencies": 4
  890. },
  891. "failed": false,
  892. "errors": 0,
  893. "warnings": 0,
  894. "assets": [],
  895. "reasons": [
  896. {
  897. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeConditionNode.js",
  898. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeConditionNode.js",
  899. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeConditionNode.js",
  900. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeConditionNode.js",
  901. "type": "harmony side effect evaluation",
  902. "userRequest": "./shaderCodeNode",
  903. "loc": "2:0-50"
  904. },
  905. {
  906. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeConditionNode.js",
  907. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeConditionNode.js",
  908. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeConditionNode.js",
  909. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeConditionNode.js",
  910. "type": "harmony import specifier",
  911. "userRequest": "./shaderCodeNode",
  912. "loc": "19:2-16"
  913. },
  914. {
  915. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeTestNode.js",
  916. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeTestNode.js",
  917. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeTestNode.js",
  918. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeTestNode.js",
  919. "type": "harmony side effect evaluation",
  920. "userRequest": "./shaderCodeNode",
  921. "loc": "2:0-50"
  922. },
  923. {
  924. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeTestNode.js",
  925. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeTestNode.js",
  926. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeTestNode.js",
  927. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeTestNode.js",
  928. "type": "harmony import specifier",
  929. "userRequest": "./shaderCodeNode",
  930. "loc": "13:2-16"
  931. },
  932. {
  933. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  934. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  935. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  936. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  937. "type": "harmony side effect evaluation",
  938. "userRequest": "./shaderCodeNode",
  939. "loc": "1:0-50"
  940. },
  941. {
  942. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  943. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  944. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  945. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  946. "type": "harmony import specifier",
  947. "userRequest": "./shaderCodeNode",
  948. "loc": "107:35-49"
  949. },
  950. {
  951. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  952. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  953. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  954. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  955. "type": "harmony import specifier",
  956. "userRequest": "./shaderCodeNode",
  957. "loc": "160:34-48"
  958. },
  959. {
  960. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  961. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  962. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  963. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  964. "type": "harmony import specifier",
  965. "userRequest": "./shaderCodeNode",
  966. "loc": "176:27-41"
  967. }
  968. ],
  969. "providedExports": [
  970. "ShaderCodeNode"
  971. ],
  972. "optimizationBailout": [],
  973. "depth": 4,
  974. "source": "import { StringTools } from '../../Misc/stringTools';\r\n/** @hidden */\r\nvar ShaderCodeNode = /** @class */ (function () {\r\n function ShaderCodeNode() {\r\n this.children = [];\r\n }\r\n ShaderCodeNode.prototype.isValid = function (preprocessors) {\r\n return true;\r\n };\r\n ShaderCodeNode.prototype.process = function (preprocessors, options) {\r\n var result = \"\";\r\n if (this.line) {\r\n var value = this.line;\r\n var processor = options.processor;\r\n if (processor) {\r\n // This must be done before other replacements to avoid mistakenly changing something that was already changed.\r\n if (processor.lineProcessor) {\r\n value = processor.lineProcessor(value, options.isFragment);\r\n }\r\n if (processor.attributeProcessor && StringTools.StartsWith(this.line, \"attribute\")) {\r\n value = processor.attributeProcessor(this.line);\r\n }\r\n else if (processor.varyingProcessor && StringTools.StartsWith(this.line, \"varying\")) {\r\n value = processor.varyingProcessor(this.line, options.isFragment);\r\n }\r\n else if ((processor.uniformProcessor || processor.uniformBufferProcessor) && StringTools.StartsWith(this.line, \"uniform\")) {\r\n var regex = /uniform (.+) (.+)/;\r\n if (regex.test(this.line)) { // uniform\r\n if (processor.uniformProcessor) {\r\n value = processor.uniformProcessor(this.line, options.isFragment);\r\n }\r\n }\r\n else { // Uniform buffer\r\n if (processor.uniformBufferProcessor) {\r\n value = processor.uniformBufferProcessor(this.line, options.isFragment);\r\n options.lookForClosingBracketForUniformBuffer = true;\r\n }\r\n }\r\n }\r\n if (processor.endOfUniformBufferProcessor) {\r\n if (options.lookForClosingBracketForUniformBuffer && this.line.indexOf(\"}\") !== -1) {\r\n options.lookForClosingBracketForUniformBuffer = false;\r\n value = processor.endOfUniformBufferProcessor(this.line, options.isFragment);\r\n }\r\n }\r\n }\r\n result += value + \"\\r\\n\";\r\n }\r\n this.children.forEach(function (child) {\r\n result += child.process(preprocessors, options);\r\n });\r\n if (this.additionalDefineKey) {\r\n preprocessors[this.additionalDefineKey] = this.additionalDefineValue || \"true\";\r\n }\r\n return result;\r\n };\r\n return ShaderCodeNode;\r\n}());\r\nexport { ShaderCodeNode };\r\n//# sourceMappingURL=shaderCodeNode.js.map"
  975. },
  976. {
  977. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeTestNode.js",
  978. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeTestNode.js",
  979. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeTestNode.js",
  980. "index": 14,
  981. "index2": 10,
  982. "size": 603,
  983. "cacheable": true,
  984. "built": true,
  985. "optional": false,
  986. "prefetched": false,
  987. "chunks": [
  988. "thinEngineOnly"
  989. ],
  990. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  991. "issuerId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  992. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  993. "issuerPath": [
  994. {
  995. "id": "./thinEngineOnly.ts",
  996. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  997. "name": "./thinEngineOnly.ts",
  998. "profile": {
  999. "factory": 42,
  1000. "building": 2115
  1001. }
  1002. },
  1003. {
  1004. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1005. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1006. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1007. "profile": {
  1008. "factory": 6,
  1009. "building": 110
  1010. }
  1011. },
  1012. {
  1013. "id": "../../.temp/packageES6Dev/core/Materials/effect.js",
  1014. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  1015. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  1016. "profile": {
  1017. "factory": 59,
  1018. "building": 41,
  1019. "dependencies": 4
  1020. }
  1021. },
  1022. {
  1023. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  1024. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  1025. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  1026. "profile": {
  1027. "factory": 25,
  1028. "building": 9,
  1029. "dependencies": 2
  1030. }
  1031. }
  1032. ],
  1033. "profile": {
  1034. "factory": 6,
  1035. "building": 12,
  1036. "dependencies": 4
  1037. },
  1038. "failed": false,
  1039. "errors": 0,
  1040. "warnings": 0,
  1041. "assets": [],
  1042. "reasons": [
  1043. {
  1044. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  1045. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  1046. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  1047. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  1048. "type": "harmony side effect evaluation",
  1049. "userRequest": "./shaderCodeTestNode",
  1050. "loc": "4:0-58"
  1051. },
  1052. {
  1053. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  1054. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  1055. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  1056. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  1057. "type": "harmony import specifier",
  1058. "userRequest": "./shaderCodeTestNode",
  1059. "loc": "87:23-41"
  1060. }
  1061. ],
  1062. "providedExports": [
  1063. "ShaderCodeTestNode"
  1064. ],
  1065. "optimizationBailout": [],
  1066. "depth": 4,
  1067. "source": "import * as tslib_1 from \"tslib\";\r\nimport { ShaderCodeNode } from './shaderCodeNode';\r\n/** @hidden */\r\nvar ShaderCodeTestNode = /** @class */ (function (_super) {\r\n tslib_1.__extends(ShaderCodeTestNode, _super);\r\n function ShaderCodeTestNode() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ShaderCodeTestNode.prototype.isValid = function (preprocessors) {\r\n return this.testExpression.isTrue(preprocessors);\r\n };\r\n return ShaderCodeTestNode;\r\n}(ShaderCodeNode));\r\nexport { ShaderCodeTestNode };\r\n//# sourceMappingURL=shaderCodeTestNode.js.map"
  1068. },
  1069. {
  1070. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  1071. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  1072. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  1073. "index": 9,
  1074. "index2": 21,
  1075. "size": 14076,
  1076. "cacheable": true,
  1077. "built": true,
  1078. "optional": false,
  1079. "prefetched": false,
  1080. "chunks": [
  1081. "thinEngineOnly"
  1082. ],
  1083. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  1084. "issuerId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  1085. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  1086. "issuerPath": [
  1087. {
  1088. "id": "./thinEngineOnly.ts",
  1089. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  1090. "name": "./thinEngineOnly.ts",
  1091. "profile": {
  1092. "factory": 42,
  1093. "building": 2115
  1094. }
  1095. },
  1096. {
  1097. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1098. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1099. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1100. "profile": {
  1101. "factory": 6,
  1102. "building": 110
  1103. }
  1104. },
  1105. {
  1106. "id": "../../.temp/packageES6Dev/core/Materials/effect.js",
  1107. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  1108. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  1109. "profile": {
  1110. "factory": 59,
  1111. "building": 41,
  1112. "dependencies": 4
  1113. }
  1114. }
  1115. ],
  1116. "profile": {
  1117. "factory": 25,
  1118. "building": 9,
  1119. "dependencies": 2
  1120. },
  1121. "failed": false,
  1122. "errors": 0,
  1123. "warnings": 0,
  1124. "assets": [],
  1125. "reasons": [
  1126. {
  1127. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  1128. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  1129. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  1130. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  1131. "type": "harmony side effect evaluation",
  1132. "userRequest": "../Engines/Processors/shaderProcessor",
  1133. "loc": "5:0-72"
  1134. },
  1135. {
  1136. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  1137. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  1138. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  1139. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  1140. "type": "harmony import specifier",
  1141. "userRequest": "../Engines/Processors/shaderProcessor",
  1142. "loc": "281:16-31"
  1143. },
  1144. {
  1145. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  1146. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  1147. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  1148. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  1149. "type": "harmony import specifier",
  1150. "userRequest": "../Engines/Processors/shaderProcessor",
  1151. "loc": "283:20-35"
  1152. }
  1153. ],
  1154. "providedExports": [
  1155. "ShaderProcessor"
  1156. ],
  1157. "optimizationBailout": [],
  1158. "depth": 3,
  1159. "source": "import { ShaderCodeNode } from './shaderCodeNode';\r\nimport { ShaderCodeCursor } from './shaderCodeCursor';\r\nimport { ShaderCodeConditionNode } from './shaderCodeConditionNode';\r\nimport { ShaderCodeTestNode } from './shaderCodeTestNode';\r\nimport { ShaderDefineIsDefinedOperator } from './Expressions/Operators/shaderDefineIsDefinedOperator';\r\nimport { ShaderDefineOrOperator } from './Expressions/Operators/shaderDefineOrOperator';\r\nimport { ShaderDefineAndOperator } from './Expressions/Operators/shaderDefineAndOperator';\r\nimport { ShaderDefineArithmeticOperator } from './Expressions/Operators/shaderDefineArithmeticOperator';\r\nimport { FileTools } from '../../Misc/fileTools';\r\n/** @hidden */\r\nvar ShaderProcessor = /** @class */ (function () {\r\n function ShaderProcessor() {\r\n }\r\n ShaderProcessor.Process = function (sourceCode, options, callback) {\r\n var _this = this;\r\n this._ProcessIncludes(sourceCode, options, function (codeWithIncludes) {\r\n var migratedCode = _this._ProcessShaderConversion(codeWithIncludes, options);\r\n callback(migratedCode);\r\n });\r\n };\r\n ShaderProcessor._ProcessPrecision = function (source, options) {\r\n var shouldUseHighPrecisionShader = options.shouldUseHighPrecisionShader;\r\n if (source.indexOf(\"precision highp float\") === -1) {\r\n if (!shouldUseHighPrecisionShader) {\r\n source = \"precision mediump float;\\n\" + source;\r\n }\r\n else {\r\n source = \"precision highp float;\\n\" + source;\r\n }\r\n }\r\n else {\r\n if (!shouldUseHighPrecisionShader) { // Moving highp to mediump\r\n source = source.replace(\"precision highp float\", \"precision mediump float\");\r\n }\r\n }\r\n return source;\r\n };\r\n ShaderProcessor._ExtractOperation = function (expression) {\r\n var regex = /defined\\((.+)\\)/;\r\n var match = regex.exec(expression);\r\n if (match && match.length) {\r\n return new ShaderDefineIsDefinedOperator(match[1].trim(), expression[0] === \"!\");\r\n }\r\n var operators = [\"==\", \">=\", \"<=\", \"<\", \">\"];\r\n var operator = \"\";\r\n var indexOperator = 0;\r\n for (var _i = 0, operators_1 = operators; _i < operators_1.length; _i++) {\r\n operator = operators_1[_i];\r\n indexOperator = expression.indexOf(operator);\r\n if (indexOperator > -1) {\r\n break;\r\n }\r\n }\r\n if (indexOperator === -1) {\r\n return new ShaderDefineIsDefinedOperator(expression);\r\n }\r\n var define = expression.substring(0, indexOperator).trim();\r\n var value = expression.substring(indexOperator + operator.length).trim();\r\n return new ShaderDefineArithmeticOperator(define, operator, value);\r\n };\r\n ShaderProcessor._BuildSubExpression = function (expression) {\r\n var indexOr = expression.indexOf(\"||\");\r\n if (indexOr === -1) {\r\n var indexAnd = expression.indexOf(\"&&\");\r\n if (indexAnd > -1) {\r\n var andOperator = new ShaderDefineAndOperator();\r\n var leftPart = expression.substring(0, indexAnd).trim();\r\n var rightPart = expression.substring(indexAnd + 2).trim();\r\n andOperator.leftOperand = this._BuildSubExpression(leftPart);\r\n andOperator.rightOperand = this._BuildSubExpression(rightPart);\r\n return andOperator;\r\n }\r\n else {\r\n return this._ExtractOperation(expression);\r\n }\r\n }\r\n else {\r\n var orOperator = new ShaderDefineOrOperator();\r\n var leftPart = expression.substring(0, indexOr).trim();\r\n var rightPart = expression.substring(indexOr + 2).trim();\r\n orOperator.leftOperand = this._BuildSubExpression(leftPart);\r\n orOperator.rightOperand = this._BuildSubExpression(rightPart);\r\n return orOperator;\r\n }\r\n };\r\n ShaderProcessor._BuildExpression = function (line, start) {\r\n var node = new ShaderCodeTestNode();\r\n var command = line.substring(0, start);\r\n var expression = line.substring(start).trim();\r\n if (command === \"#ifdef\") {\r\n node.testExpression = new ShaderDefineIsDefinedOperator(expression);\r\n }\r\n else if (command === \"#ifndef\") {\r\n node.testExpression = new ShaderDefineIsDefinedOperator(expression, true);\r\n }\r\n else {\r\n node.testExpression = this._BuildSubExpression(expression);\r\n }\r\n return node;\r\n };\r\n ShaderProcessor._MoveCursorWithinIf = function (cursor, rootNode, ifNode) {\r\n var line = cursor.currentLine;\r\n while (this._MoveCursor(cursor, ifNode)) {\r\n line = cursor.currentLine;\r\n var first5 = line.substring(0, 5).toLowerCase();\r\n if (first5 === \"#else\") {\r\n var elseNode = new ShaderCodeNode();\r\n rootNode.children.push(elseNode);\r\n this._MoveCursor(cursor, elseNode);\r\n return;\r\n }\r\n else if (first5 === \"#elif\") {\r\n var elifNode = this._BuildExpression(line, 5);\r\n rootNode.children.push(elifNode);\r\n ifNode = elifNode;\r\n }\r\n }\r\n };\r\n ShaderProcessor._MoveCursor = function (cursor, rootNode) {\r\n while (cursor.canRead) {\r\n cursor.lineIndex++;\r\n var line = cursor.currentLine;\r\n var keywords = /(#ifdef)|(#else)|(#elif)|(#endif)|(#ifndef)|(#if)/;\r\n var matches = keywords.exec(line);\r\n if (matches && matches.length) {\r\n var keyword = matches[0];\r\n switch (keyword) {\r\n case \"#ifdef\": {\r\n var newRootNode = new ShaderCodeConditionNode();\r\n rootNode.children.push(newRootNode);\r\n var ifNode = this._BuildExpression(line, 6);\r\n newRootNode.children.push(ifNode);\r\n this._MoveCursorWithinIf(cursor, newRootNode, ifNode);\r\n break;\r\n }\r\n case \"#else\":\r\n case \"#elif\":\r\n return true;\r\n case \"#endif\":\r\n return false;\r\n case \"#ifndef\": {\r\n var newRootNode = new ShaderCodeConditionNode();\r\n rootNode.children.push(newRootNode);\r\n var ifNode = this._BuildExpression(line, 7);\r\n newRootNode.children.push(ifNode);\r\n this._MoveCursorWithinIf(cursor, newRootNode, ifNode);\r\n break;\r\n }\r\n case \"#if\": {\r\n var newRootNode = new ShaderCodeConditionNode();\r\n var ifNode = this._BuildExpression(line, 3);\r\n rootNode.children.push(newRootNode);\r\n newRootNode.children.push(ifNode);\r\n this._MoveCursorWithinIf(cursor, newRootNode, ifNode);\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n var newNode = new ShaderCodeNode();\r\n newNode.line = line;\r\n rootNode.children.push(newNode);\r\n // Detect additional defines\r\n if (line[0] === \"#\" && line[1] === \"d\") {\r\n var split = line.replace(\";\", \"\").split(\" \");\r\n newNode.additionalDefineKey = split[1];\r\n if (split.length === 3) {\r\n newNode.additionalDefineValue = split[2];\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n ShaderProcessor._EvaluatePreProcessors = function (sourceCode, preprocessors, options) {\r\n var rootNode = new ShaderCodeNode();\r\n var cursor = new ShaderCodeCursor();\r\n cursor.lineIndex = -1;\r\n cursor.lines = sourceCode.split(\"\\n\");\r\n // Decompose (We keep it in 2 steps so it is easier to maintain and perf hit is insignificant)\r\n this._MoveCursor(cursor, rootNode);\r\n // Recompose\r\n return rootNode.process(preprocessors, options);\r\n };\r\n ShaderProcessor._PreparePreProcessors = function (options) {\r\n var defines = options.defines;\r\n var preprocessors = {};\r\n for (var _i = 0, defines_1 = defines; _i < defines_1.length; _i++) {\r\n var define = defines_1[_i];\r\n var keyValue = define.replace(\"#define\", \"\").replace(\";\", \"\").trim();\r\n var split = keyValue.split(\" \");\r\n preprocessors[split[0]] = split.length > 1 ? split[1] : \"\";\r\n }\r\n preprocessors[\"GL_ES\"] = \"true\";\r\n preprocessors[\"__VERSION__\"] = options.version;\r\n preprocessors[options.platformName] = \"true\";\r\n return preprocessors;\r\n };\r\n ShaderProcessor._ProcessShaderConversion = function (sourceCode, options) {\r\n var preparedSourceCode = this._ProcessPrecision(sourceCode, options);\r\n if (!options.processor) {\r\n return preparedSourceCode;\r\n }\r\n // Already converted\r\n if (preparedSourceCode.indexOf(\"#version 3\") !== -1) {\r\n return preparedSourceCode.replace(\"#version 300 es\", \"\");\r\n }\r\n var defines = options.defines;\r\n var preprocessors = this._PreparePreProcessors(options);\r\n // General pre processing\r\n if (options.processor.preProcessor) {\r\n preparedSourceCode = options.processor.preProcessor(preparedSourceCode, defines, options.isFragment);\r\n }\r\n preparedSourceCode = this._EvaluatePreProcessors(preparedSourceCode, preprocessors, options);\r\n // Post processing\r\n if (options.processor.postProcessor) {\r\n preparedSourceCode = options.processor.postProcessor(preparedSourceCode, defines, options.isFragment);\r\n }\r\n return preparedSourceCode;\r\n };\r\n ShaderProcessor._ProcessIncludes = function (sourceCode, options, callback) {\r\n var _this = this;\r\n var regex = /#include<(.+)>(\\((.*)\\))*(\\[(.*)\\])*/g;\r\n var match = regex.exec(sourceCode);\r\n var returnValue = new String(sourceCode);\r\n while (match != null) {\r\n var includeFile = match[1];\r\n // Uniform declaration\r\n if (includeFile.indexOf(\"__decl__\") !== -1) {\r\n includeFile = includeFile.replace(/__decl__/, \"\");\r\n if (options.supportsUniformBuffers) {\r\n includeFile = includeFile.replace(/Vertex/, \"Ubo\");\r\n includeFile = includeFile.replace(/Fragment/, \"Ubo\");\r\n }\r\n includeFile = includeFile + \"Declaration\";\r\n }\r\n if (options.includesShadersStore[includeFile]) {\r\n // Substitution\r\n var includeContent = options.includesShadersStore[includeFile];\r\n if (match[2]) {\r\n var splits = match[3].split(\",\");\r\n for (var index = 0; index < splits.length; index += 2) {\r\n var source = new RegExp(splits[index], \"g\");\r\n var dest = splits[index + 1];\r\n includeContent = includeContent.replace(source, dest);\r\n }\r\n }\r\n if (match[4]) {\r\n var indexString = match[5];\r\n if (indexString.indexOf(\"..\") !== -1) {\r\n var indexSplits = indexString.split(\"..\");\r\n var minIndex = parseInt(indexSplits[0]);\r\n var maxIndex = parseInt(indexSplits[1]);\r\n var sourceIncludeContent = includeContent.slice(0);\r\n includeContent = \"\";\r\n if (isNaN(maxIndex)) {\r\n maxIndex = options.indexParameters[indexSplits[1]];\r\n }\r\n for (var i = minIndex; i < maxIndex; i++) {\r\n if (!options.supportsUniformBuffers) {\r\n // Ubo replacement\r\n sourceIncludeContent = sourceIncludeContent.replace(/light\\{X\\}.(\\w*)/g, function (str, p1) {\r\n return p1 + \"{X}\";\r\n });\r\n }\r\n includeContent += sourceIncludeContent.replace(/\\{X\\}/g, i.toString()) + \"\\n\";\r\n }\r\n }\r\n else {\r\n if (!options.supportsUniformBuffers) {\r\n // Ubo replacement\r\n includeContent = includeContent.replace(/light\\{X\\}.(\\w*)/g, function (str, p1) {\r\n return p1 + \"{X}\";\r\n });\r\n }\r\n includeContent = includeContent.replace(/\\{X\\}/g, indexString);\r\n }\r\n }\r\n // Replace\r\n returnValue = returnValue.replace(match[0], includeContent);\r\n }\r\n else {\r\n var includeShaderUrl = options.shadersRepository + \"ShadersInclude/\" + includeFile + \".fx\";\r\n FileTools.LoadFile(includeShaderUrl, function (fileContent) {\r\n options.includesShadersStore[includeFile] = fileContent;\r\n _this._ProcessIncludes(returnValue, options, callback);\r\n });\r\n return;\r\n }\r\n match = regex.exec(sourceCode);\r\n }\r\n callback(returnValue);\r\n };\r\n return ShaderProcessor;\r\n}());\r\nexport { ShaderProcessor };\r\n//# sourceMappingURL=shaderProcessor.js.map"
  1160. },
  1161. {
  1162. "id": "../../.temp/packageES6Dev/core/Engines/WebGL/webGL2ShaderProcessors.js",
  1163. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\WebGL\\webGL2ShaderProcessors.js",
  1164. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/WebGL/webGL2ShaderProcessors.js",
  1165. "index": 34,
  1166. "index2": 32,
  1167. "size": 1975,
  1168. "cacheable": true,
  1169. "built": true,
  1170. "optional": false,
  1171. "prefetched": false,
  1172. "chunks": [
  1173. "thinEngineOnly"
  1174. ],
  1175. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1176. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1177. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1178. "issuerPath": [
  1179. {
  1180. "id": "./thinEngineOnly.ts",
  1181. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  1182. "name": "./thinEngineOnly.ts",
  1183. "profile": {
  1184. "factory": 42,
  1185. "building": 2115
  1186. }
  1187. },
  1188. {
  1189. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1190. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1191. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1192. "profile": {
  1193. "factory": 6,
  1194. "building": 110
  1195. }
  1196. }
  1197. ],
  1198. "profile": {
  1199. "factory": 59,
  1200. "building": 41,
  1201. "dependencies": 4
  1202. },
  1203. "failed": false,
  1204. "errors": 0,
  1205. "warnings": 0,
  1206. "assets": [],
  1207. "reasons": [
  1208. {
  1209. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1210. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1211. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1212. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1213. "type": "harmony side effect evaluation",
  1214. "userRequest": "./WebGL/webGL2ShaderProcessors",
  1215. "loc": "15:0-71"
  1216. },
  1217. {
  1218. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1219. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1220. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1221. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1222. "type": "harmony import specifier",
  1223. "userRequest": "./WebGL/webGL2ShaderProcessors",
  1224. "loc": "301:40-61"
  1225. }
  1226. ],
  1227. "providedExports": [
  1228. "WebGL2ShaderProcessor"
  1229. ],
  1230. "optimizationBailout": [],
  1231. "depth": 2,
  1232. "source": "/** @hidden */\r\nvar WebGL2ShaderProcessor = /** @class */ (function () {\r\n function WebGL2ShaderProcessor() {\r\n }\r\n WebGL2ShaderProcessor.prototype.attributeProcessor = function (attribute) {\r\n return attribute.replace(\"attribute\", \"in\");\r\n };\r\n WebGL2ShaderProcessor.prototype.varyingProcessor = function (varying, isFragment) {\r\n return varying.replace(\"varying\", isFragment ? \"in\" : \"out\");\r\n };\r\n WebGL2ShaderProcessor.prototype.postProcessor = function (code, defines, isFragment) {\r\n var hasDrawBuffersExtension = code.search(/#extension.+GL_EXT_draw_buffers.+require/) !== -1;\r\n // Remove extensions\r\n var regex = /#extension.+(GL_OVR_multiview2|GL_OES_standard_derivatives|GL_EXT_shader_texture_lod|GL_EXT_frag_depth|GL_EXT_draw_buffers).+(enable|require)/g;\r\n code = code.replace(regex, \"\");\r\n // Replace instructions\r\n code = code.replace(/texture2D\\s*\\(/g, \"texture(\");\r\n if (isFragment) {\r\n code = code.replace(/texture2DLodEXT\\s*\\(/g, \"textureLod(\");\r\n code = code.replace(/textureCubeLodEXT\\s*\\(/g, \"textureLod(\");\r\n code = code.replace(/textureCube\\s*\\(/g, \"texture(\");\r\n code = code.replace(/gl_FragDepthEXT/g, \"gl_FragDepth\");\r\n code = code.replace(/gl_FragColor/g, \"glFragColor\");\r\n code = code.replace(/gl_FragData/g, \"glFragData\");\r\n code = code.replace(/void\\s+?main\\s*\\(/g, (hasDrawBuffersExtension ? \"\" : \"out vec4 glFragColor;\\n\") + \"void main(\");\r\n }\r\n else {\r\n var hasMultiviewExtension = defines.indexOf(\"#define MULTIVIEW\") !== -1;\r\n if (hasMultiviewExtension) {\r\n return \"#extension GL_OVR_multiview2 : require\\nlayout (num_views = 2) in;\\n\" + code;\r\n }\r\n }\r\n return code;\r\n };\r\n return WebGL2ShaderProcessor;\r\n}());\r\nexport { WebGL2ShaderProcessor };\r\n//# sourceMappingURL=webGL2ShaderProcessors.js.map"
  1233. },
  1234. {
  1235. "id": "../../.temp/packageES6Dev/core/Engines/WebGL/webGLPipelineContext.js",
  1236. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\WebGL\\webGLPipelineContext.js",
  1237. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/WebGL/webGLPipelineContext.js",
  1238. "index": 37,
  1239. "index2": 35,
  1240. "size": 1078,
  1241. "cacheable": true,
  1242. "built": true,
  1243. "optional": false,
  1244. "prefetched": false,
  1245. "chunks": [
  1246. "thinEngineOnly"
  1247. ],
  1248. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1249. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1250. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1251. "issuerPath": [
  1252. {
  1253. "id": "./thinEngineOnly.ts",
  1254. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  1255. "name": "./thinEngineOnly.ts",
  1256. "profile": {
  1257. "factory": 42,
  1258. "building": 2115
  1259. }
  1260. },
  1261. {
  1262. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1263. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1264. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1265. "profile": {
  1266. "factory": 6,
  1267. "building": 110
  1268. }
  1269. }
  1270. ],
  1271. "profile": {
  1272. "factory": 59,
  1273. "building": 41,
  1274. "dependencies": 4
  1275. },
  1276. "failed": false,
  1277. "errors": 0,
  1278. "warnings": 0,
  1279. "assets": [],
  1280. "reasons": [
  1281. {
  1282. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1283. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1284. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1285. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1286. "type": "harmony side effect evaluation",
  1287. "userRequest": "./WebGL/webGLPipelineContext",
  1288. "loc": "17:0-68"
  1289. },
  1290. {
  1291. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1292. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1293. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1294. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1295. "type": "harmony import specifier",
  1296. "userRequest": "./WebGL/webGLPipelineContext",
  1297. "loc": "1758:34-54"
  1298. }
  1299. ],
  1300. "providedExports": [
  1301. "WebGLPipelineContext"
  1302. ],
  1303. "optimizationBailout": [],
  1304. "depth": 2,
  1305. "source": "/** @hidden */\r\nvar WebGLPipelineContext = /** @class */ (function () {\r\n function WebGLPipelineContext() {\r\n }\r\n Object.defineProperty(WebGLPipelineContext.prototype, \"isAsync\", {\r\n get: function () {\r\n return this.isParallelCompiled;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WebGLPipelineContext.prototype, \"isReady\", {\r\n get: function () {\r\n if (this.program) {\r\n if (this.isParallelCompiled) {\r\n return this.engine._isRenderingStateCompiled(this);\r\n }\r\n return true;\r\n }\r\n return false;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n WebGLPipelineContext.prototype._handlesSpectorRebuildCallback = function (onCompiled) {\r\n if (onCompiled && this.program) {\r\n onCompiled(this.program);\r\n }\r\n };\r\n return WebGLPipelineContext;\r\n}());\r\nexport { WebGLPipelineContext };\r\n//# sourceMappingURL=webGLPipelineContext.js.map"
  1306. },
  1307. {
  1308. "id": "../../.temp/packageES6Dev/core/Engines/constants.js",
  1309. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\constants.js",
  1310. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/constants.js",
  1311. "index": 6,
  1312. "index2": 3,
  1313. "size": 19306,
  1314. "cacheable": true,
  1315. "built": true,
  1316. "optional": false,
  1317. "prefetched": false,
  1318. "chunks": [
  1319. "thinEngineOnly"
  1320. ],
  1321. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1322. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1323. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1324. "issuerPath": [
  1325. {
  1326. "id": "./thinEngineOnly.ts",
  1327. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  1328. "name": "./thinEngineOnly.ts",
  1329. "profile": {
  1330. "factory": 42,
  1331. "building": 2115
  1332. }
  1333. },
  1334. {
  1335. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1336. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1337. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1338. "profile": {
  1339. "factory": 6,
  1340. "building": 110
  1341. }
  1342. }
  1343. ],
  1344. "profile": {
  1345. "factory": 59,
  1346. "building": 41,
  1347. "dependencies": 4
  1348. },
  1349. "failed": false,
  1350. "errors": 0,
  1351. "warnings": 0,
  1352. "assets": [],
  1353. "reasons": [
  1354. {
  1355. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1356. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1357. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1358. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1359. "type": "harmony side effect evaluation",
  1360. "userRequest": "./constants",
  1361. "loc": "11:0-40"
  1362. },
  1363. {
  1364. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1365. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1366. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1367. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1368. "type": "harmony import specifier",
  1369. "userRequest": "./constants",
  1370. "loc": "444:84-93"
  1371. },
  1372. {
  1373. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1374. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1375. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1376. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1377. "type": "harmony import specifier",
  1378. "userRequest": "./constants",
  1379. "loc": "444:128-137"
  1380. },
  1381. {
  1382. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1383. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1384. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1385. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1386. "type": "harmony import specifier",
  1387. "userRequest": "./constants",
  1388. "loc": "457:91-100"
  1389. },
  1390. {
  1391. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1392. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1393. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1394. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1395. "type": "harmony import specifier",
  1396. "userRequest": "./constants",
  1397. "loc": "457:135-144"
  1398. },
  1399. {
  1400. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1401. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1402. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1403. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1404. "type": "harmony import specifier",
  1405. "userRequest": "./constants",
  1406. "loc": "472:80-89"
  1407. },
  1408. {
  1409. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1410. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1411. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1412. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1413. "type": "harmony import specifier",
  1414. "userRequest": "./constants",
  1415. "loc": "472:110-119"
  1416. },
  1417. {
  1418. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1419. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1420. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1421. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1422. "type": "harmony import specifier",
  1423. "userRequest": "./constants",
  1424. "loc": "472:160-169"
  1425. },
  1426. {
  1427. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1428. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1429. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1430. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1431. "type": "harmony import specifier",
  1432. "userRequest": "./constants",
  1433. "loc": "1569:45-54"
  1434. },
  1435. {
  1436. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1437. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1438. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1439. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1440. "type": "harmony import specifier",
  1441. "userRequest": "./constants",
  1442. "loc": "1569:83-92"
  1443. },
  1444. {
  1445. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1446. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1447. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1448. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1449. "type": "harmony import specifier",
  1450. "userRequest": "./constants",
  1451. "loc": "1578:28-37"
  1452. },
  1453. {
  1454. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1455. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1456. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1457. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1458. "type": "harmony import specifier",
  1459. "userRequest": "./constants",
  1460. "loc": "1588:43-52"
  1461. },
  1462. {
  1463. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1464. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1465. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1466. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1467. "type": "harmony import specifier",
  1468. "userRequest": "./constants",
  1469. "loc": "1588:81-90"
  1470. },
  1471. {
  1472. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1473. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1474. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1475. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1476. "type": "harmony import specifier",
  1477. "userRequest": "./constants",
  1478. "loc": "1634:17-26"
  1479. },
  1480. {
  1481. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1482. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1483. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1484. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1485. "type": "harmony import specifier",
  1486. "userRequest": "./constants",
  1487. "loc": "1636:17-26"
  1488. },
  1489. {
  1490. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1491. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1492. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1493. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1494. "type": "harmony import specifier",
  1495. "userRequest": "./constants",
  1496. "loc": "1638:17-26"
  1497. },
  1498. {
  1499. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1500. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1501. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1502. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1503. "type": "harmony import specifier",
  1504. "userRequest": "./constants",
  1505. "loc": "1641:17-26"
  1506. },
  1507. {
  1508. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1509. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1510. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1511. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1512. "type": "harmony import specifier",
  1513. "userRequest": "./constants",
  1514. "loc": "1643:17-26"
  1515. },
  1516. {
  1517. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1518. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1519. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1520. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1521. "type": "harmony import specifier",
  1522. "userRequest": "./constants",
  1523. "loc": "1645:17-26"
  1524. },
  1525. {
  1526. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1527. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1528. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1529. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1530. "type": "harmony import specifier",
  1531. "userRequest": "./constants",
  1532. "loc": "1647:17-26"
  1533. },
  1534. {
  1535. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1536. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1537. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1538. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1539. "type": "harmony import specifier",
  1540. "userRequest": "./constants",
  1541. "loc": "1649:17-26"
  1542. },
  1543. {
  1544. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1545. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1546. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1547. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1548. "type": "harmony import specifier",
  1549. "userRequest": "./constants",
  1550. "loc": "1651:17-26"
  1551. },
  1552. {
  1553. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1554. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1555. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1556. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1557. "type": "harmony import specifier",
  1558. "userRequest": "./constants",
  1559. "loc": "2263:17-26"
  1560. },
  1561. {
  1562. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1563. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1564. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1565. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1566. "type": "harmony import specifier",
  1567. "userRequest": "./constants",
  1568. "loc": "2272:17-26"
  1569. },
  1570. {
  1571. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1572. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1573. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1574. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1575. "type": "harmony import specifier",
  1576. "userRequest": "./constants",
  1577. "loc": "2281:17-26"
  1578. },
  1579. {
  1580. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1581. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1582. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1583. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1584. "type": "harmony import specifier",
  1585. "userRequest": "./constants",
  1586. "loc": "2290:17-26"
  1587. },
  1588. {
  1589. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1590. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1591. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1592. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1593. "type": "harmony import specifier",
  1594. "userRequest": "./constants",
  1595. "loc": "2299:17-26"
  1596. },
  1597. {
  1598. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1599. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1600. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1601. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1602. "type": "harmony import specifier",
  1603. "userRequest": "./constants",
  1604. "loc": "2308:17-26"
  1605. },
  1606. {
  1607. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1608. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1609. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1610. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1611. "type": "harmony import specifier",
  1612. "userRequest": "./constants",
  1613. "loc": "2317:17-26"
  1614. },
  1615. {
  1616. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1617. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1618. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1619. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1620. "type": "harmony import specifier",
  1621. "userRequest": "./constants",
  1622. "loc": "2321:17-26"
  1623. },
  1624. {
  1625. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1626. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1627. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1628. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1629. "type": "harmony import specifier",
  1630. "userRequest": "./constants",
  1631. "loc": "2325:17-26"
  1632. },
  1633. {
  1634. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1635. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1636. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1637. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1638. "type": "harmony import specifier",
  1639. "userRequest": "./constants",
  1640. "loc": "2334:17-26"
  1641. },
  1642. {
  1643. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1644. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1645. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1646. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1647. "type": "harmony import specifier",
  1648. "userRequest": "./constants",
  1649. "loc": "2343:17-26"
  1650. },
  1651. {
  1652. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1653. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1654. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1655. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1656. "type": "harmony import specifier",
  1657. "userRequest": "./constants",
  1658. "loc": "2347:17-26"
  1659. },
  1660. {
  1661. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1662. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1663. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1664. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1665. "type": "harmony import specifier",
  1666. "userRequest": "./constants",
  1667. "loc": "2387:54-63"
  1668. },
  1669. {
  1670. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1671. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1672. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1673. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1674. "type": "harmony import specifier",
  1675. "userRequest": "./constants",
  1676. "loc": "2572:38-47"
  1677. },
  1678. {
  1679. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1680. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1681. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1682. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1683. "type": "harmony import specifier",
  1684. "userRequest": "./constants",
  1685. "loc": "2607:52-61"
  1686. },
  1687. {
  1688. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1689. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1690. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1691. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1692. "type": "harmony import specifier",
  1693. "userRequest": "./constants",
  1694. "loc": "2663:79-88"
  1695. },
  1696. {
  1697. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1698. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1699. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1700. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1701. "type": "harmony import specifier",
  1702. "userRequest": "./constants",
  1703. "loc": "2675:73-82"
  1704. },
  1705. {
  1706. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1707. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1708. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1709. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1710. "type": "harmony import specifier",
  1711. "userRequest": "./constants",
  1712. "loc": "2699:59-68"
  1713. },
  1714. {
  1715. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1716. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1717. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1718. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1719. "type": "harmony import specifier",
  1720. "userRequest": "./constants",
  1721. "loc": "2699:101-110"
  1722. },
  1723. {
  1724. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1725. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1726. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1727. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1728. "type": "harmony import specifier",
  1729. "userRequest": "./constants",
  1730. "loc": "2700:31-40"
  1731. },
  1732. {
  1733. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1734. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1735. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1736. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1737. "type": "harmony import specifier",
  1738. "userRequest": "./constants",
  1739. "loc": "2710:62-71"
  1740. },
  1741. {
  1742. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1743. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1744. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1745. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1746. "type": "harmony import specifier",
  1747. "userRequest": "./constants",
  1748. "loc": "2922:54-63"
  1749. },
  1750. {
  1751. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1752. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1753. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1754. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1755. "type": "harmony import specifier",
  1756. "userRequest": "./constants",
  1757. "loc": "3109:17-26"
  1758. },
  1759. {
  1760. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1761. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1762. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1763. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1764. "type": "harmony import specifier",
  1765. "userRequest": "./constants",
  1766. "loc": "3111:17-26"
  1767. },
  1768. {
  1769. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1770. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1771. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1772. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1773. "type": "harmony import specifier",
  1774. "userRequest": "./constants",
  1775. "loc": "3113:17-26"
  1776. },
  1777. {
  1778. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1779. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1780. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1781. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1782. "type": "harmony import specifier",
  1783. "userRequest": "./constants",
  1784. "loc": "3138:44-53"
  1785. },
  1786. {
  1787. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1788. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1789. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1790. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1791. "type": "harmony import specifier",
  1792. "userRequest": "./constants",
  1793. "loc": "3199:67-76"
  1794. },
  1795. {
  1796. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1797. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1798. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1799. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1800. "type": "harmony import specifier",
  1801. "userRequest": "./constants",
  1802. "loc": "3199:127-136"
  1803. },
  1804. {
  1805. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1806. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1807. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1808. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1809. "type": "harmony import specifier",
  1810. "userRequest": "./constants",
  1811. "loc": "3257:45-54"
  1812. },
  1813. {
  1814. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1815. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1816. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1817. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1818. "type": "harmony import specifier",
  1819. "userRequest": "./constants",
  1820. "loc": "3258:48-57"
  1821. },
  1822. {
  1823. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1824. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1825. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1826. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1827. "type": "harmony import specifier",
  1828. "userRequest": "./constants",
  1829. "loc": "3259:48-57"
  1830. },
  1831. {
  1832. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1833. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1834. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1835. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1836. "type": "harmony import specifier",
  1837. "userRequest": "./constants",
  1838. "loc": "3380:44-53"
  1839. },
  1840. {
  1841. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1842. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1843. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1844. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1845. "type": "harmony import specifier",
  1846. "userRequest": "./constants",
  1847. "loc": "3386:44-53"
  1848. },
  1849. {
  1850. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1851. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1852. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1853. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1854. "type": "harmony import specifier",
  1855. "userRequest": "./constants",
  1856. "loc": "3432:21-30"
  1857. },
  1858. {
  1859. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1860. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1861. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1862. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1863. "type": "harmony import specifier",
  1864. "userRequest": "./constants",
  1865. "loc": "3434:21-30"
  1866. },
  1867. {
  1868. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1869. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1870. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1871. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1872. "type": "harmony import specifier",
  1873. "userRequest": "./constants",
  1874. "loc": "3436:21-30"
  1875. },
  1876. {
  1877. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1878. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1879. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1880. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1881. "type": "harmony import specifier",
  1882. "userRequest": "./constants",
  1883. "loc": "3438:21-30"
  1884. },
  1885. {
  1886. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1887. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1888. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1889. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1890. "type": "harmony import specifier",
  1891. "userRequest": "./constants",
  1892. "loc": "3440:21-30"
  1893. },
  1894. {
  1895. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1896. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1897. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1898. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1899. "type": "harmony import specifier",
  1900. "userRequest": "./constants",
  1901. "loc": "3442:21-30"
  1902. },
  1903. {
  1904. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1905. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1906. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1907. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1908. "type": "harmony import specifier",
  1909. "userRequest": "./constants",
  1910. "loc": "3448:17-26"
  1911. },
  1912. {
  1913. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1914. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1915. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1916. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1917. "type": "harmony import specifier",
  1918. "userRequest": "./constants",
  1919. "loc": "3450:17-26"
  1920. },
  1921. {
  1922. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1923. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1924. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1925. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1926. "type": "harmony import specifier",
  1927. "userRequest": "./constants",
  1928. "loc": "3452:17-26"
  1929. },
  1930. {
  1931. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1932. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1933. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1934. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1935. "type": "harmony import specifier",
  1936. "userRequest": "./constants",
  1937. "loc": "3454:17-26"
  1938. },
  1939. {
  1940. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1941. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1942. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1943. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1944. "type": "harmony import specifier",
  1945. "userRequest": "./constants",
  1946. "loc": "3456:17-26"
  1947. },
  1948. {
  1949. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1950. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1951. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1952. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1953. "type": "harmony import specifier",
  1954. "userRequest": "./constants",
  1955. "loc": "3458:17-26"
  1956. },
  1957. {
  1958. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1959. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1960. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1961. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1962. "type": "harmony import specifier",
  1963. "userRequest": "./constants",
  1964. "loc": "3460:17-26"
  1965. },
  1966. {
  1967. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1968. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1969. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1970. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1971. "type": "harmony import specifier",
  1972. "userRequest": "./constants",
  1973. "loc": "3462:17-26"
  1974. },
  1975. {
  1976. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1977. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1978. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1979. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1980. "type": "harmony import specifier",
  1981. "userRequest": "./constants",
  1982. "loc": "3464:17-26"
  1983. },
  1984. {
  1985. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1986. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1987. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1988. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1989. "type": "harmony import specifier",
  1990. "userRequest": "./constants",
  1991. "loc": "3466:17-26"
  1992. },
  1993. {
  1994. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  1995. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  1996. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1997. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  1998. "type": "harmony import specifier",
  1999. "userRequest": "./constants",
  2000. "loc": "3468:17-26"
  2001. },
  2002. {
  2003. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2004. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2005. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2006. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2007. "type": "harmony import specifier",
  2008. "userRequest": "./constants",
  2009. "loc": "3470:17-26"
  2010. },
  2011. {
  2012. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2013. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2014. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2015. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2016. "type": "harmony import specifier",
  2017. "userRequest": "./constants",
  2018. "loc": "3472:17-26"
  2019. },
  2020. {
  2021. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2022. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2023. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2024. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2025. "type": "harmony import specifier",
  2026. "userRequest": "./constants",
  2027. "loc": "3474:17-26"
  2028. },
  2029. {
  2030. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2031. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2032. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2033. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2034. "type": "harmony import specifier",
  2035. "userRequest": "./constants",
  2036. "loc": "3476:17-26"
  2037. },
  2038. {
  2039. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2040. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2041. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2042. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2043. "type": "harmony import specifier",
  2044. "userRequest": "./constants",
  2045. "loc": "3478:17-26"
  2046. },
  2047. {
  2048. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2049. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2050. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2051. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2052. "type": "harmony import specifier",
  2053. "userRequest": "./constants",
  2054. "loc": "3487:17-26"
  2055. },
  2056. {
  2057. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2058. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2059. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2060. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2061. "type": "harmony import specifier",
  2062. "userRequest": "./constants",
  2063. "loc": "3490:17-26"
  2064. },
  2065. {
  2066. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2067. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2068. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2069. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2070. "type": "harmony import specifier",
  2071. "userRequest": "./constants",
  2072. "loc": "3493:17-26"
  2073. },
  2074. {
  2075. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2076. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2077. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2078. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2079. "type": "harmony import specifier",
  2080. "userRequest": "./constants",
  2081. "loc": "3496:17-26"
  2082. },
  2083. {
  2084. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2085. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2086. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2087. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2088. "type": "harmony import specifier",
  2089. "userRequest": "./constants",
  2090. "loc": "3499:17-26"
  2091. },
  2092. {
  2093. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2094. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2095. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2096. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2097. "type": "harmony import specifier",
  2098. "userRequest": "./constants",
  2099. "loc": "3502:17-26"
  2100. },
  2101. {
  2102. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2103. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2104. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2105. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2106. "type": "harmony import specifier",
  2107. "userRequest": "./constants",
  2108. "loc": "3505:17-26"
  2109. },
  2110. {
  2111. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2112. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2113. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2114. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2115. "type": "harmony import specifier",
  2116. "userRequest": "./constants",
  2117. "loc": "3511:21-30"
  2118. },
  2119. {
  2120. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2121. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2122. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2123. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2124. "type": "harmony import specifier",
  2125. "userRequest": "./constants",
  2126. "loc": "3514:21-30"
  2127. },
  2128. {
  2129. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2130. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2131. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2132. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2133. "type": "harmony import specifier",
  2134. "userRequest": "./constants",
  2135. "loc": "3517:21-30"
  2136. },
  2137. {
  2138. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2139. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2140. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2141. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2142. "type": "harmony import specifier",
  2143. "userRequest": "./constants",
  2144. "loc": "3520:21-30"
  2145. },
  2146. {
  2147. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2148. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2149. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2150. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2151. "type": "harmony import specifier",
  2152. "userRequest": "./constants",
  2153. "loc": "3532:25-34"
  2154. },
  2155. {
  2156. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2157. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2158. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2159. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2160. "type": "harmony import specifier",
  2161. "userRequest": "./constants",
  2162. "loc": "3534:25-34"
  2163. },
  2164. {
  2165. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2166. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2167. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2168. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2169. "type": "harmony import specifier",
  2170. "userRequest": "./constants",
  2171. "loc": "3536:25-34"
  2172. },
  2173. {
  2174. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2175. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2176. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2177. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2178. "type": "harmony import specifier",
  2179. "userRequest": "./constants",
  2180. "loc": "3543:17-26"
  2181. },
  2182. {
  2183. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2184. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2185. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2186. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2187. "type": "harmony import specifier",
  2188. "userRequest": "./constants",
  2189. "loc": "3545:25-34"
  2190. },
  2191. {
  2192. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2193. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2194. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2195. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2196. "type": "harmony import specifier",
  2197. "userRequest": "./constants",
  2198. "loc": "3547:25-34"
  2199. },
  2200. {
  2201. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2202. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2203. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2204. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2205. "type": "harmony import specifier",
  2206. "userRequest": "./constants",
  2207. "loc": "3549:25-34"
  2208. },
  2209. {
  2210. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2211. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2212. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2213. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2214. "type": "harmony import specifier",
  2215. "userRequest": "./constants",
  2216. "loc": "3551:25-34"
  2217. },
  2218. {
  2219. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2220. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2221. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2222. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2223. "type": "harmony import specifier",
  2224. "userRequest": "./constants",
  2225. "loc": "3553:25-34"
  2226. },
  2227. {
  2228. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2229. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2230. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2231. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2232. "type": "harmony import specifier",
  2233. "userRequest": "./constants",
  2234. "loc": "3555:25-34"
  2235. },
  2236. {
  2237. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2238. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2239. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2240. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2241. "type": "harmony import specifier",
  2242. "userRequest": "./constants",
  2243. "loc": "3557:25-34"
  2244. },
  2245. {
  2246. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2247. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2248. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2249. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2250. "type": "harmony import specifier",
  2251. "userRequest": "./constants",
  2252. "loc": "3562:17-26"
  2253. },
  2254. {
  2255. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2256. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2257. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2258. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2259. "type": "harmony import specifier",
  2260. "userRequest": "./constants",
  2261. "loc": "3564:25-34"
  2262. },
  2263. {
  2264. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2265. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2266. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2267. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2268. "type": "harmony import specifier",
  2269. "userRequest": "./constants",
  2270. "loc": "3566:25-34"
  2271. },
  2272. {
  2273. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2274. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2275. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2276. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2277. "type": "harmony import specifier",
  2278. "userRequest": "./constants",
  2279. "loc": "3568:25-34"
  2280. },
  2281. {
  2282. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2283. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2284. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2285. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2286. "type": "harmony import specifier",
  2287. "userRequest": "./constants",
  2288. "loc": "3570:25-34"
  2289. },
  2290. {
  2291. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2292. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2293. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2294. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2295. "type": "harmony import specifier",
  2296. "userRequest": "./constants",
  2297. "loc": "3572:25-34"
  2298. },
  2299. {
  2300. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2301. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2302. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2303. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2304. "type": "harmony import specifier",
  2305. "userRequest": "./constants",
  2306. "loc": "3574:25-34"
  2307. },
  2308. {
  2309. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2310. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2311. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2312. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2313. "type": "harmony import specifier",
  2314. "userRequest": "./constants",
  2315. "loc": "3576:25-34"
  2316. },
  2317. {
  2318. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2319. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2320. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2321. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2322. "type": "harmony import specifier",
  2323. "userRequest": "./constants",
  2324. "loc": "3578:25-34"
  2325. },
  2326. {
  2327. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2328. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2329. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2330. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2331. "type": "harmony import specifier",
  2332. "userRequest": "./constants",
  2333. "loc": "3580:25-34"
  2334. },
  2335. {
  2336. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2337. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2338. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2339. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2340. "type": "harmony import specifier",
  2341. "userRequest": "./constants",
  2342. "loc": "3582:25-34"
  2343. },
  2344. {
  2345. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2346. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2347. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2348. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2349. "type": "harmony import specifier",
  2350. "userRequest": "./constants",
  2351. "loc": "3584:25-34"
  2352. },
  2353. {
  2354. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2355. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2356. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2357. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2358. "type": "harmony import specifier",
  2359. "userRequest": "./constants",
  2360. "loc": "3589:17-26"
  2361. },
  2362. {
  2363. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2364. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2365. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2366. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2367. "type": "harmony import specifier",
  2368. "userRequest": "./constants",
  2369. "loc": "3591:25-34"
  2370. },
  2371. {
  2372. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2373. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2374. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2375. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2376. "type": "harmony import specifier",
  2377. "userRequest": "./constants",
  2378. "loc": "3593:25-34"
  2379. },
  2380. {
  2381. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2382. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2383. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2384. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2385. "type": "harmony import specifier",
  2386. "userRequest": "./constants",
  2387. "loc": "3595:25-34"
  2388. },
  2389. {
  2390. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2391. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2392. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2393. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2394. "type": "harmony import specifier",
  2395. "userRequest": "./constants",
  2396. "loc": "3597:25-34"
  2397. },
  2398. {
  2399. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2400. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2401. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2402. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2403. "type": "harmony import specifier",
  2404. "userRequest": "./constants",
  2405. "loc": "3602:17-26"
  2406. },
  2407. {
  2408. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2409. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2410. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2411. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2412. "type": "harmony import specifier",
  2413. "userRequest": "./constants",
  2414. "loc": "3604:25-34"
  2415. },
  2416. {
  2417. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2418. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2419. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2420. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2421. "type": "harmony import specifier",
  2422. "userRequest": "./constants",
  2423. "loc": "3606:25-34"
  2424. },
  2425. {
  2426. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2427. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2428. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2429. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2430. "type": "harmony import specifier",
  2431. "userRequest": "./constants",
  2432. "loc": "3608:25-34"
  2433. },
  2434. {
  2435. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2436. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2437. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2438. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2439. "type": "harmony import specifier",
  2440. "userRequest": "./constants",
  2441. "loc": "3610:25-34"
  2442. },
  2443. {
  2444. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2445. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2446. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2447. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2448. "type": "harmony import specifier",
  2449. "userRequest": "./constants",
  2450. "loc": "3615:17-26"
  2451. },
  2452. {
  2453. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2454. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2455. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2456. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2457. "type": "harmony import specifier",
  2458. "userRequest": "./constants",
  2459. "loc": "3617:25-34"
  2460. },
  2461. {
  2462. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2463. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2464. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2465. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2466. "type": "harmony import specifier",
  2467. "userRequest": "./constants",
  2468. "loc": "3619:25-34"
  2469. },
  2470. {
  2471. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2472. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2473. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2474. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2475. "type": "harmony import specifier",
  2476. "userRequest": "./constants",
  2477. "loc": "3621:25-34"
  2478. },
  2479. {
  2480. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2481. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2482. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2483. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2484. "type": "harmony import specifier",
  2485. "userRequest": "./constants",
  2486. "loc": "3623:25-34"
  2487. },
  2488. {
  2489. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2490. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2491. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2492. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2493. "type": "harmony import specifier",
  2494. "userRequest": "./constants",
  2495. "loc": "3628:17-26"
  2496. },
  2497. {
  2498. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2499. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2500. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2501. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2502. "type": "harmony import specifier",
  2503. "userRequest": "./constants",
  2504. "loc": "3630:25-34"
  2505. },
  2506. {
  2507. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2508. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2509. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2510. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2511. "type": "harmony import specifier",
  2512. "userRequest": "./constants",
  2513. "loc": "3632:25-34"
  2514. },
  2515. {
  2516. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2517. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2518. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2519. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2520. "type": "harmony import specifier",
  2521. "userRequest": "./constants",
  2522. "loc": "3634:25-34"
  2523. },
  2524. {
  2525. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2526. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2527. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2528. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2529. "type": "harmony import specifier",
  2530. "userRequest": "./constants",
  2531. "loc": "3636:25-34"
  2532. },
  2533. {
  2534. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2535. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2536. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2537. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2538. "type": "harmony import specifier",
  2539. "userRequest": "./constants",
  2540. "loc": "3641:17-26"
  2541. },
  2542. {
  2543. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2544. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2545. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2546. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2547. "type": "harmony import specifier",
  2548. "userRequest": "./constants",
  2549. "loc": "3643:25-34"
  2550. },
  2551. {
  2552. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2553. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2554. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2555. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2556. "type": "harmony import specifier",
  2557. "userRequest": "./constants",
  2558. "loc": "3645:25-34"
  2559. },
  2560. {
  2561. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2562. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2563. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2564. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2565. "type": "harmony import specifier",
  2566. "userRequest": "./constants",
  2567. "loc": "3647:25-34"
  2568. },
  2569. {
  2570. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2571. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2572. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2573. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2574. "type": "harmony import specifier",
  2575. "userRequest": "./constants",
  2576. "loc": "3649:25-34"
  2577. },
  2578. {
  2579. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2580. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2581. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2582. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2583. "type": "harmony import specifier",
  2584. "userRequest": "./constants",
  2585. "loc": "3654:17-26"
  2586. },
  2587. {
  2588. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2589. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2590. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2591. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2592. "type": "harmony import specifier",
  2593. "userRequest": "./constants",
  2594. "loc": "3656:25-34"
  2595. },
  2596. {
  2597. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2598. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2599. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2600. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2601. "type": "harmony import specifier",
  2602. "userRequest": "./constants",
  2603. "loc": "3658:25-34"
  2604. },
  2605. {
  2606. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2607. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2608. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2609. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2610. "type": "harmony import specifier",
  2611. "userRequest": "./constants",
  2612. "loc": "3660:25-34"
  2613. },
  2614. {
  2615. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2616. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2617. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2618. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2619. "type": "harmony import specifier",
  2620. "userRequest": "./constants",
  2621. "loc": "3662:25-34"
  2622. },
  2623. {
  2624. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2625. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2626. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2627. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2628. "type": "harmony import specifier",
  2629. "userRequest": "./constants",
  2630. "loc": "3667:17-26"
  2631. },
  2632. {
  2633. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2634. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2635. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2636. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2637. "type": "harmony import specifier",
  2638. "userRequest": "./constants",
  2639. "loc": "3669:17-26"
  2640. },
  2641. {
  2642. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2643. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2644. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2645. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2646. "type": "harmony import specifier",
  2647. "userRequest": "./constants",
  2648. "loc": "3671:17-26"
  2649. },
  2650. {
  2651. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2652. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2653. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2654. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2655. "type": "harmony import specifier",
  2656. "userRequest": "./constants",
  2657. "loc": "3673:17-26"
  2658. },
  2659. {
  2660. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2661. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2662. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2663. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2664. "type": "harmony import specifier",
  2665. "userRequest": "./constants",
  2666. "loc": "3675:17-26"
  2667. },
  2668. {
  2669. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2670. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2671. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2672. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2673. "type": "harmony import specifier",
  2674. "userRequest": "./constants",
  2675. "loc": "3677:17-26"
  2676. },
  2677. {
  2678. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2679. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2680. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2681. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2682. "type": "harmony import specifier",
  2683. "userRequest": "./constants",
  2684. "loc": "3679:25-34"
  2685. },
  2686. {
  2687. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2688. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2689. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2690. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2691. "type": "harmony import specifier",
  2692. "userRequest": "./constants",
  2693. "loc": "3681:25-34"
  2694. },
  2695. {
  2696. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2697. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2698. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2699. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2700. "type": "harmony import specifier",
  2701. "userRequest": "./constants",
  2702. "loc": "3691:21-30"
  2703. },
  2704. {
  2705. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2706. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2707. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2708. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2709. "type": "harmony import specifier",
  2710. "userRequest": "./constants",
  2711. "loc": "3694:26-35"
  2712. },
  2713. {
  2714. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2715. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2716. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2717. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2718. "type": "harmony import specifier",
  2719. "userRequest": "./constants",
  2720. "loc": "3771:38-47"
  2721. },
  2722. {
  2723. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2724. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2725. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2726. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2727. "type": "harmony import specifier",
  2728. "userRequest": "./constants",
  2729. "loc": "3774:17-26"
  2730. },
  2731. {
  2732. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2733. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2734. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2735. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2736. "type": "harmony import specifier",
  2737. "userRequest": "./constants",
  2738. "loc": "3777:17-26"
  2739. },
  2740. {
  2741. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2742. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2743. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2744. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2745. "type": "harmony import specifier",
  2746. "userRequest": "./constants",
  2747. "loc": "3780:17-26"
  2748. },
  2749. {
  2750. "moduleId": "../../.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  2751. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\Textures\\internalTexture.js",
  2752. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  2753. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  2754. "type": "harmony side effect evaluation",
  2755. "userRequest": "../../Engines/constants",
  2756. "loc": "3:0-52"
  2757. },
  2758. {
  2759. "moduleId": "../../.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  2760. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\Textures\\internalTexture.js",
  2761. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  2762. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  2763. "type": "harmony import specifier",
  2764. "userRequest": "../../Engines/constants",
  2765. "loc": "276:61-70"
  2766. },
  2767. {
  2768. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  2769. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  2770. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  2771. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  2772. "type": "harmony side effect evaluation",
  2773. "userRequest": "../Engines/constants",
  2774. "loc": "2:0-49"
  2775. },
  2776. {
  2777. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  2778. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  2779. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  2780. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  2781. "type": "harmony import specifier",
  2782. "userRequest": "../Engines/constants",
  2783. "loc": "580:50-59"
  2784. },
  2785. {
  2786. "moduleId": "../../.temp/packageES6Dev/core/States/stencilState.js",
  2787. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\States\\stencilState.js",
  2788. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/States/stencilState.js",
  2789. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/States/stencilState.js",
  2790. "type": "harmony side effect evaluation",
  2791. "userRequest": "../Engines/constants",
  2792. "loc": "1:0-49"
  2793. },
  2794. {
  2795. "moduleId": "../../.temp/packageES6Dev/core/States/stencilState.js",
  2796. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\States\\stencilState.js",
  2797. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/States/stencilState.js",
  2798. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/States/stencilState.js",
  2799. "type": "harmony import specifier",
  2800. "userRequest": "../Engines/constants",
  2801. "loc": "177:26-35"
  2802. },
  2803. {
  2804. "moduleId": "../../.temp/packageES6Dev/core/States/stencilState.js",
  2805. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\States\\stencilState.js",
  2806. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/States/stencilState.js",
  2807. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/States/stencilState.js",
  2808. "type": "harmony import specifier",
  2809. "userRequest": "../Engines/constants",
  2810. "loc": "179:24-33"
  2811. },
  2812. {
  2813. "moduleId": "../../.temp/packageES6Dev/core/States/stencilState.js",
  2814. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\States\\stencilState.js",
  2815. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/States/stencilState.js",
  2816. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/States/stencilState.js",
  2817. "type": "harmony import specifier",
  2818. "userRequest": "../Engines/constants",
  2819. "loc": "181:27-36"
  2820. }
  2821. ],
  2822. "providedExports": [
  2823. "Constants"
  2824. ],
  2825. "optimizationBailout": [],
  2826. "depth": 2,
  2827. "source": "/** Defines the cross module used constants to avoid circular dependncies */\r\nvar Constants = /** @class */ (function () {\r\n function Constants() {\r\n }\r\n /** Defines that alpha blending is disabled */\r\n Constants.ALPHA_DISABLE = 0;\r\n /** Defines that alpha blending to SRC ALPHA * SRC + DEST */\r\n Constants.ALPHA_ADD = 1;\r\n /** Defines that alpha blending to SRC ALPHA * SRC + (1 - SRC ALPHA) * DEST */\r\n Constants.ALPHA_COMBINE = 2;\r\n /** Defines that alpha blending to DEST - SRC * DEST */\r\n Constants.ALPHA_SUBTRACT = 3;\r\n /** Defines that alpha blending to SRC * DEST */\r\n Constants.ALPHA_MULTIPLY = 4;\r\n /** Defines that alpha blending to SRC ALPHA * SRC + (1 - SRC) * DEST */\r\n Constants.ALPHA_MAXIMIZED = 5;\r\n /** Defines that alpha blending to SRC + DEST */\r\n Constants.ALPHA_ONEONE = 6;\r\n /** Defines that alpha blending to SRC + (1 - SRC ALPHA) * DEST */\r\n Constants.ALPHA_PREMULTIPLIED = 7;\r\n /**\r\n * Defines that alpha blending to SRC + (1 - SRC ALPHA) * DEST\r\n * Alpha will be set to (1 - SRC ALPHA) * DEST ALPHA\r\n */\r\n Constants.ALPHA_PREMULTIPLIED_PORTERDUFF = 8;\r\n /** Defines that alpha blending to CST * SRC + (1 - CST) * DEST */\r\n Constants.ALPHA_INTERPOLATE = 9;\r\n /**\r\n * Defines that alpha blending to SRC + (1 - SRC) * DEST\r\n * Alpha will be set to SRC ALPHA + (1 - SRC ALPHA) * DEST ALPHA\r\n */\r\n Constants.ALPHA_SCREENMODE = 10;\r\n /**\r\n * Defines that alpha blending to SRC + DST\r\n * Alpha will be set to SRC ALPHA + DST ALPHA\r\n */\r\n Constants.ALPHA_ONEONE_ONEONE = 11;\r\n /**\r\n * Defines that alpha blending to SRC * DST ALPHA + DST\r\n * Alpha will be set to 0\r\n */\r\n Constants.ALPHA_ALPHATOCOLOR = 12;\r\n /**\r\n * Defines that alpha blending to SRC * (1 - DST) + DST * (1 - SRC)\r\n */\r\n Constants.ALPHA_REVERSEONEMINUS = 13;\r\n /**\r\n * Defines that alpha blending to SRC + DST * (1 - SRC ALPHA)\r\n * Alpha will be set to SRC ALPHA + DST ALPHA * (1 - SRC ALPHA)\r\n */\r\n Constants.ALPHA_SRC_DSTONEMINUSSRCALPHA = 14;\r\n /**\r\n * Defines that alpha blending to SRC + DST\r\n * Alpha will be set to SRC ALPHA\r\n */\r\n Constants.ALPHA_ONEONE_ONEZERO = 15;\r\n /** Defines that alpha blending equation a SUM */\r\n Constants.ALPHA_EQUATION_ADD = 0;\r\n /** Defines that alpha blending equation a SUBSTRACTION */\r\n Constants.ALPHA_EQUATION_SUBSTRACT = 1;\r\n /** Defines that alpha blending equation a REVERSE SUBSTRACTION */\r\n Constants.ALPHA_EQUATION_REVERSE_SUBTRACT = 2;\r\n /** Defines that alpha blending equation a MAX operation */\r\n Constants.ALPHA_EQUATION_MAX = 3;\r\n /** Defines that alpha blending equation a MIN operation */\r\n Constants.ALPHA_EQUATION_MIN = 4;\r\n /**\r\n * Defines that alpha blending equation a DARKEN operation:\r\n * It takes the min of the src and sums the alpha channels.\r\n */\r\n Constants.ALPHA_EQUATION_DARKEN = 5;\r\n /** Defines that the ressource is not delayed*/\r\n Constants.DELAYLOADSTATE_NONE = 0;\r\n /** Defines that the ressource was successfully delay loaded */\r\n Constants.DELAYLOADSTATE_LOADED = 1;\r\n /** Defines that the ressource is currently delay loading */\r\n Constants.DELAYLOADSTATE_LOADING = 2;\r\n /** Defines that the ressource is delayed and has not started loading */\r\n Constants.DELAYLOADSTATE_NOTLOADED = 4;\r\n // Depht or Stencil test Constants.\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will never pass. i.e. Nothing will be drawn */\r\n Constants.NEVER = 0x0200;\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will always pass. i.e. Pixels will be drawn in the order they are drawn */\r\n Constants.ALWAYS = 0x0207;\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is less than the stored value */\r\n Constants.LESS = 0x0201;\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is equals to the stored value */\r\n Constants.EQUAL = 0x0202;\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is less than or equal to the stored value */\r\n Constants.LEQUAL = 0x0203;\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is greater than the stored value */\r\n Constants.GREATER = 0x0204;\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is greater than or equal to the stored value */\r\n Constants.GEQUAL = 0x0206;\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is not equal to the stored value */\r\n Constants.NOTEQUAL = 0x0205;\r\n // Stencil Actions Constants.\r\n /** Passed to stencilOperation to specify that stencil value must be kept */\r\n Constants.KEEP = 0x1E00;\r\n /** Passed to stencilOperation to specify that stencil value must be replaced */\r\n Constants.REPLACE = 0x1E01;\r\n /** Passed to stencilOperation to specify that stencil value must be incremented */\r\n Constants.INCR = 0x1E02;\r\n /** Passed to stencilOperation to specify that stencil value must be decremented */\r\n Constants.DECR = 0x1E03;\r\n /** Passed to stencilOperation to specify that stencil value must be inverted */\r\n Constants.INVERT = 0x150A;\r\n /** Passed to stencilOperation to specify that stencil value must be incremented with wrapping */\r\n Constants.INCR_WRAP = 0x8507;\r\n /** Passed to stencilOperation to specify that stencil value must be decremented with wrapping */\r\n Constants.DECR_WRAP = 0x8508;\r\n /** Texture is not repeating outside of 0..1 UVs */\r\n Constants.TEXTURE_CLAMP_ADDRESSMODE = 0;\r\n /** Texture is repeating outside of 0..1 UVs */\r\n Constants.TEXTURE_WRAP_ADDRESSMODE = 1;\r\n /** Texture is repeating and mirrored */\r\n Constants.TEXTURE_MIRROR_ADDRESSMODE = 2;\r\n /** ALPHA */\r\n Constants.TEXTUREFORMAT_ALPHA = 0;\r\n /** LUMINANCE */\r\n Constants.TEXTUREFORMAT_LUMINANCE = 1;\r\n /** LUMINANCE_ALPHA */\r\n Constants.TEXTUREFORMAT_LUMINANCE_ALPHA = 2;\r\n /** RGB */\r\n Constants.TEXTUREFORMAT_RGB = 4;\r\n /** RGBA */\r\n Constants.TEXTUREFORMAT_RGBA = 5;\r\n /** RED */\r\n Constants.TEXTUREFORMAT_RED = 6;\r\n /** RED (2nd reference) */\r\n Constants.TEXTUREFORMAT_R = 6;\r\n /** RG */\r\n Constants.TEXTUREFORMAT_RG = 7;\r\n /** RED_INTEGER */\r\n Constants.TEXTUREFORMAT_RED_INTEGER = 8;\r\n /** RED_INTEGER (2nd reference) */\r\n Constants.TEXTUREFORMAT_R_INTEGER = 8;\r\n /** RG_INTEGER */\r\n Constants.TEXTUREFORMAT_RG_INTEGER = 9;\r\n /** RGB_INTEGER */\r\n Constants.TEXTUREFORMAT_RGB_INTEGER = 10;\r\n /** RGBA_INTEGER */\r\n Constants.TEXTUREFORMAT_RGBA_INTEGER = 11;\r\n /** UNSIGNED_BYTE */\r\n Constants.TEXTURETYPE_UNSIGNED_BYTE = 0;\r\n /** UNSIGNED_BYTE (2nd reference) */\r\n Constants.TEXTURETYPE_UNSIGNED_INT = 0;\r\n /** FLOAT */\r\n Constants.TEXTURETYPE_FLOAT = 1;\r\n /** HALF_FLOAT */\r\n Constants.TEXTURETYPE_HALF_FLOAT = 2;\r\n /** BYTE */\r\n Constants.TEXTURETYPE_BYTE = 3;\r\n /** SHORT */\r\n Constants.TEXTURETYPE_SHORT = 4;\r\n /** UNSIGNED_SHORT */\r\n Constants.TEXTURETYPE_UNSIGNED_SHORT = 5;\r\n /** INT */\r\n Constants.TEXTURETYPE_INT = 6;\r\n /** UNSIGNED_INT */\r\n Constants.TEXTURETYPE_UNSIGNED_INTEGER = 7;\r\n /** UNSIGNED_SHORT_4_4_4_4 */\r\n Constants.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4 = 8;\r\n /** UNSIGNED_SHORT_5_5_5_1 */\r\n Constants.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1 = 9;\r\n /** UNSIGNED_SHORT_5_6_5 */\r\n Constants.TEXTURETYPE_UNSIGNED_SHORT_5_6_5 = 10;\r\n /** UNSIGNED_INT_2_10_10_10_REV */\r\n Constants.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV = 11;\r\n /** UNSIGNED_INT_24_8 */\r\n Constants.TEXTURETYPE_UNSIGNED_INT_24_8 = 12;\r\n /** UNSIGNED_INT_10F_11F_11F_REV */\r\n Constants.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV = 13;\r\n /** UNSIGNED_INT_5_9_9_9_REV */\r\n Constants.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV = 14;\r\n /** FLOAT_32_UNSIGNED_INT_24_8_REV */\r\n Constants.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV = 15;\r\n /** nearest is mag = nearest and min = nearest and mip = linear */\r\n Constants.TEXTURE_NEAREST_SAMPLINGMODE = 1;\r\n /** Bilinear is mag = linear and min = linear and mip = nearest */\r\n Constants.TEXTURE_BILINEAR_SAMPLINGMODE = 2;\r\n /** Trilinear is mag = linear and min = linear and mip = linear */\r\n Constants.TEXTURE_TRILINEAR_SAMPLINGMODE = 3;\r\n /** nearest is mag = nearest and min = nearest and mip = linear */\r\n Constants.TEXTURE_NEAREST_NEAREST_MIPLINEAR = 1;\r\n /** Bilinear is mag = linear and min = linear and mip = nearest */\r\n Constants.TEXTURE_LINEAR_LINEAR_MIPNEAREST = 2;\r\n /** Trilinear is mag = linear and min = linear and mip = linear */\r\n Constants.TEXTURE_LINEAR_LINEAR_MIPLINEAR = 3;\r\n /** mag = nearest and min = nearest and mip = nearest */\r\n Constants.TEXTURE_NEAREST_NEAREST_MIPNEAREST = 4;\r\n /** mag = nearest and min = linear and mip = nearest */\r\n Constants.TEXTURE_NEAREST_LINEAR_MIPNEAREST = 5;\r\n /** mag = nearest and min = linear and mip = linear */\r\n Constants.TEXTURE_NEAREST_LINEAR_MIPLINEAR = 6;\r\n /** mag = nearest and min = linear and mip = none */\r\n Constants.TEXTURE_NEAREST_LINEAR = 7;\r\n /** mag = nearest and min = nearest and mip = none */\r\n Constants.TEXTURE_NEAREST_NEAREST = 8;\r\n /** mag = linear and min = nearest and mip = nearest */\r\n Constants.TEXTURE_LINEAR_NEAREST_MIPNEAREST = 9;\r\n /** mag = linear and min = nearest and mip = linear */\r\n Constants.TEXTURE_LINEAR_NEAREST_MIPLINEAR = 10;\r\n /** mag = linear and min = linear and mip = none */\r\n Constants.TEXTURE_LINEAR_LINEAR = 11;\r\n /** mag = linear and min = nearest and mip = none */\r\n Constants.TEXTURE_LINEAR_NEAREST = 12;\r\n /** Explicit coordinates mode */\r\n Constants.TEXTURE_EXPLICIT_MODE = 0;\r\n /** Spherical coordinates mode */\r\n Constants.TEXTURE_SPHERICAL_MODE = 1;\r\n /** Planar coordinates mode */\r\n Constants.TEXTURE_PLANAR_MODE = 2;\r\n /** Cubic coordinates mode */\r\n Constants.TEXTURE_CUBIC_MODE = 3;\r\n /** Projection coordinates mode */\r\n Constants.TEXTURE_PROJECTION_MODE = 4;\r\n /** Skybox coordinates mode */\r\n Constants.TEXTURE_SKYBOX_MODE = 5;\r\n /** Inverse Cubic coordinates mode */\r\n Constants.TEXTURE_INVCUBIC_MODE = 6;\r\n /** Equirectangular coordinates mode */\r\n Constants.TEXTURE_EQUIRECTANGULAR_MODE = 7;\r\n /** Equirectangular Fixed coordinates mode */\r\n Constants.TEXTURE_FIXED_EQUIRECTANGULAR_MODE = 8;\r\n /** Equirectangular Fixed Mirrored coordinates mode */\r\n Constants.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE = 9;\r\n // Texture rescaling mode\r\n /** Defines that texture rescaling will use a floor to find the closer power of 2 size */\r\n Constants.SCALEMODE_FLOOR = 1;\r\n /** Defines that texture rescaling will look for the nearest power of 2 size */\r\n Constants.SCALEMODE_NEAREST = 2;\r\n /** Defines that texture rescaling will use a ceil to find the closer power of 2 size */\r\n Constants.SCALEMODE_CEILING = 3;\r\n /**\r\n * The dirty texture flag value\r\n */\r\n Constants.MATERIAL_TextureDirtyFlag = 1;\r\n /**\r\n * The dirty light flag value\r\n */\r\n Constants.MATERIAL_LightDirtyFlag = 2;\r\n /**\r\n * The dirty fresnel flag value\r\n */\r\n Constants.MATERIAL_FresnelDirtyFlag = 4;\r\n /**\r\n * The dirty attribute flag value\r\n */\r\n Constants.MATERIAL_AttributesDirtyFlag = 8;\r\n /**\r\n * The dirty misc flag value\r\n */\r\n Constants.MATERIAL_MiscDirtyFlag = 16;\r\n /**\r\n * The all dirty flag value\r\n */\r\n Constants.MATERIAL_AllDirtyFlag = 31;\r\n /**\r\n * Returns the triangle fill mode\r\n */\r\n Constants.MATERIAL_TriangleFillMode = 0;\r\n /**\r\n * Returns the wireframe mode\r\n */\r\n Constants.MATERIAL_WireFrameFillMode = 1;\r\n /**\r\n * Returns the point fill mode\r\n */\r\n Constants.MATERIAL_PointFillMode = 2;\r\n /**\r\n * Returns the point list draw mode\r\n */\r\n Constants.MATERIAL_PointListDrawMode = 3;\r\n /**\r\n * Returns the line list draw mode\r\n */\r\n Constants.MATERIAL_LineListDrawMode = 4;\r\n /**\r\n * Returns the line loop draw mode\r\n */\r\n Constants.MATERIAL_LineLoopDrawMode = 5;\r\n /**\r\n * Returns the line strip draw mode\r\n */\r\n Constants.MATERIAL_LineStripDrawMode = 6;\r\n /**\r\n * Returns the triangle strip draw mode\r\n */\r\n Constants.MATERIAL_TriangleStripDrawMode = 7;\r\n /**\r\n * Returns the triangle fan draw mode\r\n */\r\n Constants.MATERIAL_TriangleFanDrawMode = 8;\r\n /**\r\n * Stores the clock-wise side orientation\r\n */\r\n Constants.MATERIAL_ClockWiseSideOrientation = 0;\r\n /**\r\n * Stores the counter clock-wise side orientation\r\n */\r\n Constants.MATERIAL_CounterClockWiseSideOrientation = 1;\r\n /**\r\n * Nothing\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_NothingTrigger = 0;\r\n /**\r\n * On pick\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnPickTrigger = 1;\r\n /**\r\n * On left pick\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnLeftPickTrigger = 2;\r\n /**\r\n * On right pick\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnRightPickTrigger = 3;\r\n /**\r\n * On center pick\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnCenterPickTrigger = 4;\r\n /**\r\n * On pick down\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnPickDownTrigger = 5;\r\n /**\r\n * On double pick\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnDoublePickTrigger = 6;\r\n /**\r\n * On pick up\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnPickUpTrigger = 7;\r\n /**\r\n * On pick out.\r\n * This trigger will only be raised if you also declared a OnPickDown\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnPickOutTrigger = 16;\r\n /**\r\n * On long press\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnLongPressTrigger = 8;\r\n /**\r\n * On pointer over\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnPointerOverTrigger = 9;\r\n /**\r\n * On pointer out\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnPointerOutTrigger = 10;\r\n /**\r\n * On every frame\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnEveryFrameTrigger = 11;\r\n /**\r\n * On intersection enter\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnIntersectionEnterTrigger = 12;\r\n /**\r\n * On intersection exit\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnIntersectionExitTrigger = 13;\r\n /**\r\n * On key down\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnKeyDownTrigger = 14;\r\n /**\r\n * On key up\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnKeyUpTrigger = 15;\r\n /**\r\n * Billboard mode will only apply to Y axis\r\n */\r\n Constants.PARTICLES_BILLBOARDMODE_Y = 2;\r\n /**\r\n * Billboard mode will apply to all axes\r\n */\r\n Constants.PARTICLES_BILLBOARDMODE_ALL = 7;\r\n /**\r\n * Special billboard mode where the particle will be biilboard to the camera but rotated to align with direction\r\n */\r\n Constants.PARTICLES_BILLBOARDMODE_STRETCHED = 8;\r\n /**\r\n * Gets or sets base Assets URL\r\n */\r\n Constants.PARTICLES_BaseAssetsUrl = \"https://assets.babylonjs.com/particles\";\r\n /** Default culling strategy : this is an exclusion test and it's the more accurate.\r\n * Test order :\r\n * Is the bounding sphere outside the frustum ?\r\n * If not, are the bounding box vertices outside the frustum ?\r\n * It not, then the cullable object is in the frustum.\r\n */\r\n Constants.MESHES_CULLINGSTRATEGY_STANDARD = 0;\r\n /** Culling strategy : Bounding Sphere Only.\r\n * This is an exclusion test. It's faster than the standard strategy because the bounding box is not tested.\r\n * It's also less accurate than the standard because some not visible objects can still be selected.\r\n * Test : is the bounding sphere outside the frustum ?\r\n * If not, then the cullable object is in the frustum.\r\n */\r\n Constants.MESHES_CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY = 1;\r\n /** Culling strategy : Optimistic Inclusion.\r\n * This in an inclusion test first, then the standard exclusion test.\r\n * This can be faster when a cullable object is expected to be almost always in the camera frustum.\r\n * This could also be a little slower than the standard test when the tested object center is not the frustum but one of its bounding box vertex is still inside.\r\n * Anyway, it's as accurate as the standard strategy.\r\n * Test :\r\n * Is the cullable object bounding sphere center in the frustum ?\r\n * If not, apply the default culling strategy.\r\n */\r\n Constants.MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION = 2;\r\n /** Culling strategy : Optimistic Inclusion then Bounding Sphere Only.\r\n * This in an inclusion test first, then the bounding sphere only exclusion test.\r\n * This can be the fastest test when a cullable object is expected to be almost always in the camera frustum.\r\n * This could also be a little slower than the BoundingSphereOnly strategy when the tested object center is not in the frustum but its bounding sphere still intersects it.\r\n * It's less accurate than the standard strategy and as accurate as the BoundingSphereOnly strategy.\r\n * Test :\r\n * Is the cullable object bounding sphere center in the frustum ?\r\n * If not, apply the Bounding Sphere Only strategy. No Bounding Box is tested here.\r\n */\r\n Constants.MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION_THEN_BSPHERE_ONLY = 3;\r\n /**\r\n * No logging while loading\r\n */\r\n Constants.SCENELOADER_NO_LOGGING = 0;\r\n /**\r\n * Minimal logging while loading\r\n */\r\n Constants.SCENELOADER_MINIMAL_LOGGING = 1;\r\n /**\r\n * Summary logging while loading\r\n */\r\n Constants.SCENELOADER_SUMMARY_LOGGING = 2;\r\n /**\r\n * Detailled logging while loading\r\n */\r\n Constants.SCENELOADER_DETAILED_LOGGING = 3;\r\n return Constants;\r\n}());\r\nexport { Constants };\r\n//# sourceMappingURL=constants.js.map"
  2828. },
  2829. {
  2830. "id": "../../.temp/packageES6Dev/core/Engines/engineCapabilities.js",
  2831. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\engineCapabilities.js",
  2832. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/engineCapabilities.js",
  2833. "index": 26,
  2834. "index2": 24,
  2835. "size": 407,
  2836. "cacheable": true,
  2837. "built": true,
  2838. "optional": false,
  2839. "prefetched": false,
  2840. "chunks": [
  2841. "thinEngineOnly"
  2842. ],
  2843. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2844. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2845. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2846. "issuerPath": [
  2847. {
  2848. "id": "./thinEngineOnly.ts",
  2849. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  2850. "name": "./thinEngineOnly.ts",
  2851. "profile": {
  2852. "factory": 42,
  2853. "building": 2115
  2854. }
  2855. },
  2856. {
  2857. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2858. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2859. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2860. "profile": {
  2861. "factory": 6,
  2862. "building": 110
  2863. }
  2864. }
  2865. ],
  2866. "profile": {
  2867. "factory": 59,
  2868. "building": 41,
  2869. "dependencies": 4
  2870. },
  2871. "failed": false,
  2872. "errors": 0,
  2873. "warnings": 0,
  2874. "assets": [],
  2875. "reasons": [
  2876. {
  2877. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2878. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2879. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2880. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2881. "type": "harmony side effect evaluation",
  2882. "userRequest": "./engineCapabilities",
  2883. "loc": "5:0-58"
  2884. },
  2885. {
  2886. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2887. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2888. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2889. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2890. "type": "harmony import specifier",
  2891. "userRequest": "./engineCapabilities",
  2892. "loc": "515:25-43"
  2893. }
  2894. ],
  2895. "providedExports": [
  2896. "EngineCapabilities"
  2897. ],
  2898. "optimizationBailout": [],
  2899. "depth": 2,
  2900. "source": "/**\r\n * Class used to describe the capabilities of the engine relatively to the current browser\r\n */\r\nvar EngineCapabilities = /** @class */ (function () {\r\n function EngineCapabilities() {\r\n /** Max number of texture samples for MSAA */\r\n this.maxMSAASamples = 1;\r\n }\r\n return EngineCapabilities;\r\n}());\r\nexport { EngineCapabilities };\r\n//# sourceMappingURL=engineCapabilities.js.map"
  2901. },
  2902. {
  2903. "id": "../../.temp/packageES6Dev/core/Engines/engineStore.js",
  2904. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\engineStore.js",
  2905. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/engineStore.js",
  2906. "index": 3,
  2907. "index2": 1,
  2908. "size": 1486,
  2909. "cacheable": true,
  2910. "built": true,
  2911. "optional": false,
  2912. "prefetched": false,
  2913. "chunks": [
  2914. "thinEngineOnly"
  2915. ],
  2916. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2917. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2918. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2919. "issuerPath": [
  2920. {
  2921. "id": "./thinEngineOnly.ts",
  2922. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  2923. "name": "./thinEngineOnly.ts",
  2924. "profile": {
  2925. "factory": 42,
  2926. "building": 2115
  2927. }
  2928. },
  2929. {
  2930. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2931. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2932. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2933. "profile": {
  2934. "factory": 6,
  2935. "building": 110
  2936. }
  2937. }
  2938. ],
  2939. "profile": {
  2940. "factory": 59,
  2941. "building": 41,
  2942. "dependencies": 4
  2943. },
  2944. "failed": false,
  2945. "errors": 0,
  2946. "warnings": 0,
  2947. "assets": [],
  2948. "reasons": [
  2949. {
  2950. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2951. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2952. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2953. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2954. "type": "harmony side effect evaluation",
  2955. "userRequest": "./engineStore",
  2956. "loc": "2:0-44"
  2957. },
  2958. {
  2959. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2960. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2961. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2962. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2963. "type": "harmony import specifier",
  2964. "userRequest": "./engineStore",
  2965. "loc": "2451:20-31"
  2966. },
  2967. {
  2968. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2969. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2970. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2971. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2972. "type": "harmony import specifier",
  2973. "userRequest": "./engineStore",
  2974. "loc": "2452:40-51"
  2975. }
  2976. ],
  2977. "providedExports": [
  2978. "EngineStore"
  2979. ],
  2980. "optimizationBailout": [],
  2981. "depth": 2,
  2982. "source": "/**\r\n * The engine store class is responsible to hold all the instances of Engine and Scene created\r\n * during the life time of the application.\r\n */\r\nvar EngineStore = /** @class */ (function () {\r\n function EngineStore() {\r\n }\r\n Object.defineProperty(EngineStore, \"LastCreatedEngine\", {\r\n /**\r\n * Gets the latest created engine\r\n */\r\n get: function () {\r\n if (this.Instances.length === 0) {\r\n return null;\r\n }\r\n return this.Instances[this.Instances.length - 1];\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(EngineStore, \"LastCreatedScene\", {\r\n /**\r\n * Gets the latest created scene\r\n */\r\n get: function () {\r\n return this._LastCreatedScene;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /** Gets the list of created engines */\r\n EngineStore.Instances = new Array();\r\n /** @hidden */\r\n EngineStore._LastCreatedScene = null;\r\n /**\r\n * Gets or sets a global variable indicating if fallback texture must be used when a texture cannot be loaded\r\n * @ignorenaming\r\n */\r\n EngineStore.UseFallbackTexture = true;\r\n /**\r\n * Texture content used if a texture cannot loaded\r\n * @ignorenaming\r\n */\r\n EngineStore.FallbackTexture = \"\";\r\n return EngineStore;\r\n}());\r\nexport { EngineStore };\r\n//# sourceMappingURL=engineStore.js.map"
  2983. },
  2984. {
  2985. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  2986. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  2987. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  2988. "index": 1,
  2989. "index2": 36,
  2990. "size": 177973,
  2991. "cacheable": true,
  2992. "built": true,
  2993. "optional": false,
  2994. "prefetched": false,
  2995. "chunks": [
  2996. "thinEngineOnly"
  2997. ],
  2998. "issuer": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  2999. "issuerId": "./thinEngineOnly.ts",
  3000. "issuerName": "./thinEngineOnly.ts",
  3001. "issuerPath": [
  3002. {
  3003. "id": "./thinEngineOnly.ts",
  3004. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  3005. "name": "./thinEngineOnly.ts",
  3006. "profile": {
  3007. "factory": 42,
  3008. "building": 2115
  3009. }
  3010. }
  3011. ],
  3012. "profile": {
  3013. "factory": 6,
  3014. "building": 110
  3015. },
  3016. "failed": false,
  3017. "errors": 0,
  3018. "warnings": 0,
  3019. "assets": [],
  3020. "reasons": [
  3021. {
  3022. "moduleId": "./thinEngineOnly.ts",
  3023. "moduleIdentifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  3024. "module": "./thinEngineOnly.ts",
  3025. "moduleName": "./thinEngineOnly.ts",
  3026. "type": "harmony side effect evaluation",
  3027. "userRequest": "@babylonjs/core/Engines/thinEngine",
  3028. "loc": "1:0-64"
  3029. },
  3030. {
  3031. "moduleId": "./thinEngineOnly.ts",
  3032. "moduleIdentifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  3033. "module": "./thinEngineOnly.ts",
  3034. "moduleName": "./thinEngineOnly.ts",
  3035. "type": "harmony import specifier",
  3036. "userRequest": "@babylonjs/core/Engines/thinEngine",
  3037. "loc": "3:4-14"
  3038. }
  3039. ],
  3040. "providedExports": [
  3041. "ThinEngine"
  3042. ],
  3043. "optimizationBailout": [],
  3044. "depth": 1,
  3045. "source": "import * as tslib_1 from \"tslib\";\r\nimport { EngineStore } from './engineStore';\r\nimport { Effect } from '../Materials/effect';\r\nimport { _DevTools } from '../Misc/devTools';\r\nimport { EngineCapabilities } from './engineCapabilities';\r\nimport { PerfCounter } from '../Misc/perfCounter';\r\nimport { Observable } from '../Misc/observable';\r\nimport { DepthCullingState } from '../States/depthCullingState';\r\nimport { StencilState } from '../States/stencilState';\r\nimport { AlphaState } from '../States/alphaCullingState';\r\nimport { Constants } from './constants';\r\nimport { InternalTexture } from '../Materials/Textures/internalTexture';\r\nimport { Logger } from '../Misc/logger';\r\nimport { DomManagement } from '../Misc/domManagement';\r\nimport { WebGL2ShaderProcessor } from './WebGL/webGL2ShaderProcessors';\r\nimport { WebGLDataBuffer } from '../Meshes/WebGL/webGLDataBuffer';\r\nimport { WebGLPipelineContext } from './WebGL/webGLPipelineContext';\r\nimport { FileTools } from '../Misc/fileTools';\r\n/**\r\n * Keeps track of all the buffer info used in engine.\r\n */\r\nvar BufferPointer = /** @class */ (function () {\r\n function BufferPointer() {\r\n }\r\n return BufferPointer;\r\n}());\r\n/**\r\n * The base engine class (root of all engines)\r\n */\r\nvar ThinEngine = /** @class */ (function () {\r\n /**\r\n * Creates a new engine\r\n * @param canvasOrContext defines the canvas or WebGL context to use for rendering. If you provide a WebGL context, Babylon.js will not hook events on the canvas (like pointers, keyboards, etc...) so no event observables will be available. This is mostly used when Babylon.js is used as a plugin on a system which alreay used the WebGL context\r\n * @param antialias defines enable antialiasing (default: false)\r\n * @param options defines further options to be sent to the getContext() function\r\n * @param adaptToDeviceRatio defines whether to adapt to the device's viewport characteristics (default: false)\r\n */\r\n function ThinEngine(canvasOrContext, antialias, options, adaptToDeviceRatio) {\r\n var _this = this;\r\n if (adaptToDeviceRatio === void 0) { adaptToDeviceRatio = false; }\r\n /**\r\n * Gets or sets a boolean that indicates if textures must be forced to power of 2 size even if not required\r\n */\r\n this.forcePOTTextures = false;\r\n /**\r\n * Gets a boolean indicating if the engine is currently rendering in fullscreen mode\r\n */\r\n this.isFullscreen = false;\r\n /**\r\n * Gets a boolean indicating if the pointer is currently locked\r\n */\r\n this.isPointerLock = false;\r\n /**\r\n * Gets or sets a boolean indicating if back faces must be culled (true by default)\r\n */\r\n this.cullBackFaces = true;\r\n /**\r\n * Gets or sets a boolean indicating if the engine must keep rendering even if the window is not in foregroun\r\n */\r\n this.renderEvenInBackground = true;\r\n /**\r\n * Gets or sets a boolean indicating that cache can be kept between frames\r\n */\r\n this.preventCacheWipeBetweenFrames = false;\r\n /** Gets or sets a boolean indicating if the engine should validate programs after compilation */\r\n this.validateShaderPrograms = false;\r\n // Uniform buffers list\r\n /**\r\n * Gets or sets a boolean indicating that uniform buffers must be disabled even if they are supported\r\n */\r\n this.disableUniformBuffers = false;\r\n /** @hidden */\r\n this._uniformBuffers = new Array();\r\n this._windowIsBackground = false;\r\n this._webGLVersion = 1.0;\r\n this._highPrecisionShadersAllowed = true;\r\n /** @hidden */\r\n this._badOS = false;\r\n /** @hidden */\r\n this._badDesktopOS = false;\r\n this._colorWrite = true;\r\n /** @hidden */\r\n this._drawCalls = new PerfCounter();\r\n this._renderingQueueLaunched = false;\r\n this._activeRenderLoops = new Array();\r\n // Lost context\r\n /**\r\n * Observable signaled when a context lost event is raised\r\n */\r\n this.onContextLostObservable = new Observable();\r\n /**\r\n * Observable signaled when a context restored event is raised\r\n */\r\n this.onContextRestoredObservable = new Observable();\r\n this._contextWasLost = false;\r\n /** @hidden */\r\n this._doNotHandleContextLost = false;\r\n /**\r\n * Gets or sets a boolean indicating that vertex array object must be disabled even if they are supported\r\n */\r\n this.disableVertexArrayObjects = false;\r\n // States\r\n /** @hidden */\r\n this._depthCullingState = new DepthCullingState();\r\n /** @hidden */\r\n this._stencilState = new StencilState();\r\n /** @hidden */\r\n this._alphaState = new AlphaState();\r\n // Cache\r\n /** @hidden */\r\n this._internalTexturesCache = new Array();\r\n /** @hidden */\r\n this._activeChannel = 0;\r\n this._currentTextureChannel = -1;\r\n /** @hidden */\r\n this._boundTexturesCache = {};\r\n this._compiledEffects = {};\r\n this._vertexAttribArraysEnabled = [];\r\n this._uintIndicesCurrentlySet = false;\r\n this._currentBoundBuffer = new Array();\r\n /** @hidden */\r\n this._currentFramebuffer = null;\r\n this._currentBufferPointers = new Array();\r\n this._currentInstanceLocations = new Array();\r\n this._currentInstanceBuffers = new Array();\r\n this._vaoRecordInProgress = false;\r\n this._mustWipeVertexAttributes = false;\r\n this._nextFreeTextureSlots = new Array();\r\n this._maxSimultaneousTextures = 0;\r\n this._activeRequests = new Array();\r\n // Hardware supported Compressed Textures\r\n this._texturesSupported = new Array();\r\n /**\r\n * Defines whether the engine has been created with the premultipliedAlpha option on or not.\r\n */\r\n this.premultipliedAlpha = true;\r\n this._viewportCached = { x: 0, y: 0, z: 0, w: 0 };\r\n this._unpackFlipYCached = null;\r\n /**\r\n * In case you are sharing the context with other applications, it might\r\n * be interested to not cache the unpack flip y state to ensure a consistent\r\n * value would be set.\r\n */\r\n this.enableUnpackFlipYCached = true;\r\n this._boundUniforms = {};\r\n var canvas = null;\r\n if (!canvasOrContext) {\r\n return;\r\n }\r\n options = options || {};\r\n if (canvasOrContext.getContext) {\r\n canvas = canvasOrContext;\r\n this._renderingCanvas = canvas;\r\n if (antialias != null) {\r\n options.antialias = antialias;\r\n }\r\n if (options.deterministicLockstep === undefined) {\r\n options.deterministicLockstep = false;\r\n }\r\n if (options.lockstepMaxSteps === undefined) {\r\n options.lockstepMaxSteps = 4;\r\n }\r\n if (options.preserveDrawingBuffer === undefined) {\r\n options.preserveDrawingBuffer = false;\r\n }\r\n if (options.audioEngine === undefined) {\r\n options.audioEngine = true;\r\n }\r\n if (options.stencil === undefined) {\r\n options.stencil = true;\r\n }\r\n if (options.premultipliedAlpha === false) {\r\n this.premultipliedAlpha = false;\r\n }\r\n this._doNotHandleContextLost = options.doNotHandleContextLost ? true : false;\r\n // Exceptions\r\n if (navigator && navigator.userAgent) {\r\n var ua = navigator.userAgent;\r\n for (var _i = 0, _a = ThinEngine.ExceptionList; _i < _a.length; _i++) {\r\n var exception = _a[_i];\r\n var key = exception.key;\r\n var targets = exception.targets;\r\n var check = new RegExp(key);\r\n if (check.test(ua)) {\r\n if (exception.capture && exception.captureConstraint) {\r\n var capture = exception.capture;\r\n var constraint = exception.captureConstraint;\r\n var regex = new RegExp(capture);\r\n var matches = regex.exec(ua);\r\n if (matches && matches.length > 0) {\r\n var capturedValue = parseInt(matches[matches.length - 1]);\r\n if (capturedValue >= constraint) {\r\n continue;\r\n }\r\n }\r\n }\r\n for (var _b = 0, targets_1 = targets; _b < targets_1.length; _b++) {\r\n var target = targets_1[_b];\r\n switch (target) {\r\n case \"uniformBuffer\":\r\n this.disableUniformBuffers = true;\r\n break;\r\n case \"vao\":\r\n this.disableVertexArrayObjects = true;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // Context lost\r\n if (!this._doNotHandleContextLost) {\r\n this._onContextLost = function (evt) {\r\n evt.preventDefault();\r\n _this._contextWasLost = true;\r\n Logger.Warn(\"WebGL context lost.\");\r\n _this.onContextLostObservable.notifyObservers(_this);\r\n };\r\n this._onContextRestored = function () {\r\n // Adding a timeout to avoid race condition at browser level\r\n setTimeout(function () {\r\n // Rebuild gl context\r\n _this._initGLContext();\r\n // Rebuild effects\r\n _this._rebuildEffects();\r\n // Rebuild textures\r\n _this._rebuildInternalTextures();\r\n // Rebuild buffers\r\n _this._rebuildBuffers();\r\n // Cache\r\n _this.wipeCaches(true);\r\n Logger.Warn(\"WebGL context successfully restored.\");\r\n _this.onContextRestoredObservable.notifyObservers(_this);\r\n _this._contextWasLost = false;\r\n }, 0);\r\n };\r\n canvas.addEventListener(\"webglcontextlost\", this._onContextLost, false);\r\n canvas.addEventListener(\"webglcontextrestored\", this._onContextRestored, false);\r\n options.powerPreference = \"high-performance\";\r\n }\r\n // GL\r\n if (!options.disableWebGL2Support) {\r\n try {\r\n this._gl = (canvas.getContext(\"webgl2\", options) || canvas.getContext(\"experimental-webgl2\", options));\r\n if (this._gl) {\r\n this._webGLVersion = 2.0;\r\n // Prevent weird browsers to lie :-)\r\n if (!this._gl.deleteQuery) {\r\n this._webGLVersion = 1.0;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // Do nothing\r\n }\r\n }\r\n if (!this._gl) {\r\n if (!canvas) {\r\n throw new Error(\"The provided canvas is null or undefined.\");\r\n }\r\n try {\r\n this._gl = (canvas.getContext(\"webgl\", options) || canvas.getContext(\"experimental-webgl\", options));\r\n }\r\n catch (e) {\r\n throw new Error(\"WebGL not supported\");\r\n }\r\n }\r\n if (!this._gl) {\r\n throw new Error(\"WebGL not supported\");\r\n }\r\n // Ensures a consistent color space unpacking of textures cross browser.\r\n this._gl.pixelStorei(this._gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, this._gl.NONE);\r\n }\r\n else {\r\n this._gl = canvasOrContext;\r\n this._renderingCanvas = this._gl.canvas;\r\n if (this._gl.renderbufferStorageMultisample) {\r\n this._webGLVersion = 2.0;\r\n }\r\n var attributes = this._gl.getContextAttributes();\r\n if (attributes) {\r\n options.stencil = attributes.stencil;\r\n }\r\n }\r\n if (options.useHighPrecisionFloats !== undefined) {\r\n this._highPrecisionShadersAllowed = options.useHighPrecisionFloats;\r\n }\r\n // Viewport\r\n var devicePixelRatio = DomManagement.IsWindowObjectExist() ? (window.devicePixelRatio || 1.0) : 1.0;\r\n var limitDeviceRatio = options.limitDeviceRatio || devicePixelRatio;\r\n this._hardwareScalingLevel = adaptToDeviceRatio ? 1.0 / Math.min(limitDeviceRatio, devicePixelRatio) : 1.0;\r\n this.resize();\r\n this._isStencilEnable = options.stencil ? true : false;\r\n this._initGLContext();\r\n // Prepare buffer pointers\r\n for (var i = 0; i < this._caps.maxVertexAttribs; i++) {\r\n this._currentBufferPointers[i] = new BufferPointer();\r\n }\r\n // Shader processor\r\n if (this.webGLVersion > 1) {\r\n this._shaderProcessor = new WebGL2ShaderProcessor();\r\n }\r\n // Detect if we are running on a faulty buggy OS.\r\n this._badOS = /iPad/i.test(navigator.userAgent) || /iPhone/i.test(navigator.userAgent);\r\n // Detect if we are running on a faulty buggy desktop OS.\r\n this._badDesktopOS = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\r\n console.log(\"Babylon.js v\" + ThinEngine.Version + \" - \" + this.description);\r\n }\r\n Object.defineProperty(ThinEngine, \"NpmPackage\", {\r\n /**\r\n * Returns the current npm package of the sdk\r\n */\r\n // Not mixed with Version for tooling purpose.\r\n get: function () {\r\n return \"babylonjs@4.1.0-alpha.20\";\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine, \"Version\", {\r\n /**\r\n * Returns the current version of the framework\r\n */\r\n get: function () {\r\n return \"4.1.0-alpha.20\";\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine.prototype, \"description\", {\r\n /**\r\n * Returns a string describing the current engine\r\n */\r\n get: function () {\r\n var description = \"WebGL\" + this.webGLVersion;\r\n if (this._caps.parallelShaderCompile) {\r\n description += \" - Parallel shader compilation\";\r\n }\r\n return description;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine, \"ShadersRepository\", {\r\n /**\r\n * Gets or sets the relative url used to load shaders if using the engine in non-minified mode\r\n */\r\n get: function () {\r\n return Effect.ShadersRepository;\r\n },\r\n set: function (value) {\r\n Effect.ShadersRepository = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine.prototype, \"supportsUniformBuffers\", {\r\n /**\r\n * Gets a boolean indicating that the engine supports uniform buffers\r\n * @see http://doc.babylonjs.com/features/webgl2#uniform-buffer-objets\r\n */\r\n get: function () {\r\n return this.webGLVersion > 1 && !this.disableUniformBuffers;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine.prototype, \"_shouldUseHighPrecisionShader\", {\r\n /** @hidden */\r\n get: function () {\r\n return this._caps.highPrecisionShaderSupported && this._highPrecisionShadersAllowed;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine.prototype, \"needPOTTextures\", {\r\n /**\r\n * Gets a boolean indicating that only power of 2 textures are supported\r\n * Please note that you can still use non power of 2 textures but in this case the engine will forcefully convert them\r\n */\r\n get: function () {\r\n return this._webGLVersion < 2 || this.forcePOTTextures;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine.prototype, \"doNotHandleContextLost\", {\r\n /**\r\n * Gets or sets a boolean indicating if resources should be retained to be able to handle context lost events\r\n * @see http://doc.babylonjs.com/how_to/optimizing_your_scene#handling-webgl-context-lost\r\n */\r\n get: function () {\r\n return this._doNotHandleContextLost;\r\n },\r\n set: function (value) {\r\n this._doNotHandleContextLost = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine.prototype, \"_supportsHardwareTextureRescaling\", {\r\n get: function () {\r\n return false;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine.prototype, \"texturesSupported\", {\r\n /**\r\n * Gets the list of texture formats supported\r\n */\r\n get: function () {\r\n return this._texturesSupported;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine.prototype, \"textureFormatInUse\", {\r\n /**\r\n * Gets the list of texture formats in use\r\n */\r\n get: function () {\r\n return this._textureFormatInUse;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine.prototype, \"currentViewport\", {\r\n /**\r\n * Gets the current viewport\r\n */\r\n get: function () {\r\n return this._cachedViewport;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine.prototype, \"emptyTexture\", {\r\n /**\r\n * Gets the default empty texture\r\n */\r\n get: function () {\r\n if (!this._emptyTexture) {\r\n this._emptyTexture = this.createRawTexture(new Uint8Array(4), 1, 1, Constants.TEXTUREFORMAT_RGBA, false, false, Constants.TEXTURE_NEAREST_SAMPLINGMODE);\r\n }\r\n return this._emptyTexture;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine.prototype, \"emptyTexture3D\", {\r\n /**\r\n * Gets the default empty 3D texture\r\n */\r\n get: function () {\r\n if (!this._emptyTexture3D) {\r\n this._emptyTexture3D = this.createRawTexture3D(new Uint8Array(4), 1, 1, 1, Constants.TEXTUREFORMAT_RGBA, false, false, Constants.TEXTURE_NEAREST_SAMPLINGMODE);\r\n }\r\n return this._emptyTexture3D;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine.prototype, \"emptyCubeTexture\", {\r\n /**\r\n * Gets the default empty cube texture\r\n */\r\n get: function () {\r\n if (!this._emptyCubeTexture) {\r\n var faceData = new Uint8Array(4);\r\n var cubeData = [faceData, faceData, faceData, faceData, faceData, faceData];\r\n this._emptyCubeTexture = this.createRawCubeTexture(cubeData, 1, Constants.TEXTUREFORMAT_RGBA, Constants.TEXTURETYPE_UNSIGNED_INT, false, false, Constants.TEXTURE_NEAREST_SAMPLINGMODE);\r\n }\r\n return this._emptyCubeTexture;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ThinEngine.prototype._rebuildInternalTextures = function () {\r\n var currentState = this._internalTexturesCache.slice(); // Do a copy because the rebuild will add proxies\r\n for (var _i = 0, currentState_1 = currentState; _i < currentState_1.length; _i++) {\r\n var internalTexture = currentState_1[_i];\r\n internalTexture._rebuild();\r\n }\r\n };\r\n ThinEngine.prototype._rebuildEffects = function () {\r\n for (var key in this._compiledEffects) {\r\n var effect = this._compiledEffects[key];\r\n effect._prepareEffect();\r\n }\r\n Effect.ResetCache();\r\n };\r\n /**\r\n * Gets a boolean indicating if all created effects are ready\r\n * @returns true if all effects are ready\r\n */\r\n ThinEngine.prototype.areAllEffectsReady = function () {\r\n for (var key in this._compiledEffects) {\r\n var effect = this._compiledEffects[key];\r\n if (!effect.isReady()) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n ThinEngine.prototype._rebuildBuffers = function () {\r\n // Uniforms\r\n for (var _i = 0, _a = this._uniformBuffers; _i < _a.length; _i++) {\r\n var uniformBuffer = _a[_i];\r\n uniformBuffer._rebuild();\r\n }\r\n };\r\n ThinEngine.prototype._initGLContext = function () {\r\n // Caps\r\n this._caps = new EngineCapabilities();\r\n this._caps.maxTexturesImageUnits = this._gl.getParameter(this._gl.MAX_TEXTURE_IMAGE_UNITS);\r\n this._caps.maxCombinedTexturesImageUnits = this._gl.getParameter(this._gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS);\r\n this._caps.maxVertexTextureImageUnits = this._gl.getParameter(this._gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS);\r\n this._caps.maxTextureSize = this._gl.getParameter(this._gl.MAX_TEXTURE_SIZE);\r\n this._caps.maxCubemapTextureSize = this._gl.getParameter(this._gl.MAX_CUBE_MAP_TEXTURE_SIZE);\r\n this._caps.maxRenderTextureSize = this._gl.getParameter(this._gl.MAX_RENDERBUFFER_SIZE);\r\n this._caps.maxVertexAttribs = this._gl.getParameter(this._gl.MAX_VERTEX_ATTRIBS);\r\n this._caps.maxVaryingVectors = this._gl.getParameter(this._gl.MAX_VARYING_VECTORS);\r\n this._caps.maxFragmentUniformVectors = this._gl.getParameter(this._gl.MAX_FRAGMENT_UNIFORM_VECTORS);\r\n this._caps.maxVertexUniformVectors = this._gl.getParameter(this._gl.MAX_VERTEX_UNIFORM_VECTORS);\r\n // Infos\r\n this._glVersion = this._gl.getParameter(this._gl.VERSION);\r\n var rendererInfo = this._gl.getExtension(\"WEBGL_debug_renderer_info\");\r\n if (rendererInfo != null) {\r\n this._glRenderer = this._gl.getParameter(rendererInfo.UNMASKED_RENDERER_WEBGL);\r\n this._glVendor = this._gl.getParameter(rendererInfo.UNMASKED_VENDOR_WEBGL);\r\n }\r\n if (!this._glVendor) {\r\n this._glVendor = \"Unknown vendor\";\r\n }\r\n if (!this._glRenderer) {\r\n this._glRenderer = \"Unknown renderer\";\r\n }\r\n // Constants\r\n this._gl.HALF_FLOAT_OES = 0x8D61; // Half floating-point type (16-bit).\r\n if (this._gl.RGBA16F !== 0x881A) {\r\n this._gl.RGBA16F = 0x881A; // RGBA 16-bit floating-point color-renderable internal sized format.\r\n }\r\n if (this._gl.RGBA32F !== 0x8814) {\r\n this._gl.RGBA32F = 0x8814; // RGBA 32-bit floating-point color-renderable internal sized format.\r\n }\r\n if (this._gl.DEPTH24_STENCIL8 !== 35056) {\r\n this._gl.DEPTH24_STENCIL8 = 35056;\r\n }\r\n // Extensions\r\n this._caps.standardDerivatives = this._webGLVersion > 1 || (this._gl.getExtension('OES_standard_derivatives') !== null);\r\n this._caps.astc = this._gl.getExtension('WEBGL_compressed_texture_astc') || this._gl.getExtension('WEBKIT_WEBGL_compressed_texture_astc');\r\n this._caps.s3tc = this._gl.getExtension('WEBGL_compressed_texture_s3tc') || this._gl.getExtension('WEBKIT_WEBGL_compressed_texture_s3tc');\r\n this._caps.pvrtc = this._gl.getExtension('WEBGL_compressed_texture_pvrtc') || this._gl.getExtension('WEBKIT_WEBGL_compressed_texture_pvrtc');\r\n this._caps.etc1 = this._gl.getExtension('WEBGL_compressed_texture_etc1') || this._gl.getExtension('WEBKIT_WEBGL_compressed_texture_etc1');\r\n this._caps.etc2 = this._gl.getExtension('WEBGL_compressed_texture_etc') || this._gl.getExtension('WEBKIT_WEBGL_compressed_texture_etc') ||\r\n this._gl.getExtension('WEBGL_compressed_texture_es3_0'); // also a requirement of OpenGL ES 3\r\n this._caps.textureAnisotropicFilterExtension = this._gl.getExtension('EXT_texture_filter_anisotropic') || this._gl.getExtension('WEBKIT_EXT_texture_filter_anisotropic') || this._gl.getExtension('MOZ_EXT_texture_filter_anisotropic');\r\n this._caps.maxAnisotropy = this._caps.textureAnisotropicFilterExtension ? this._gl.getParameter(this._caps.textureAnisotropicFilterExtension.MAX_TEXTURE_MAX_ANISOTROPY_EXT) : 0;\r\n this._caps.uintIndices = this._webGLVersion > 1 || this._gl.getExtension('OES_element_index_uint') !== null;\r\n this._caps.fragmentDepthSupported = this._webGLVersion > 1 || this._gl.getExtension('EXT_frag_depth') !== null;\r\n this._caps.highPrecisionShaderSupported = false;\r\n this._caps.timerQuery = this._gl.getExtension('EXT_disjoint_timer_query_webgl2') || this._gl.getExtension(\"EXT_disjoint_timer_query\");\r\n if (this._caps.timerQuery) {\r\n if (this._webGLVersion === 1) {\r\n this._gl.getQuery = this._caps.timerQuery.getQueryEXT.bind(this._caps.timerQuery);\r\n }\r\n this._caps.canUseTimestampForTimerQuery = this._gl.getQuery(this._caps.timerQuery.TIMESTAMP_EXT, this._caps.timerQuery.QUERY_COUNTER_BITS_EXT) > 0;\r\n }\r\n // Checks if some of the format renders first to allow the use of webgl inspector.\r\n this._caps.colorBufferFloat = this._webGLVersion > 1 && this._gl.getExtension('EXT_color_buffer_float');\r\n this._caps.textureFloat = (this._webGLVersion > 1 || this._gl.getExtension('OES_texture_float')) ? true : false;\r\n this._caps.textureFloatLinearFiltering = this._caps.textureFloat && this._gl.getExtension('OES_texture_float_linear') ? true : false;\r\n this._caps.textureFloatRender = this._caps.textureFloat && this._canRenderToFloatFramebuffer() ? true : false;\r\n this._caps.textureHalfFloat = (this._webGLVersion > 1 || this._gl.getExtension('OES_texture_half_float')) ? true : false;\r\n this._caps.textureHalfFloatLinearFiltering = (this._webGLVersion > 1 || (this._caps.textureHalfFloat && this._gl.getExtension('OES_texture_half_float_linear'))) ? true : false;\r\n if (this._webGLVersion > 1) {\r\n this._gl.HALF_FLOAT_OES = 0x140B;\r\n }\r\n this._caps.textureHalfFloatRender = this._caps.textureHalfFloat && this._canRenderToHalfFloatFramebuffer();\r\n this._caps.textureLOD = (this._webGLVersion > 1 || this._gl.getExtension('EXT_shader_texture_lod')) ? true : false;\r\n this._caps.multiview = this._gl.getExtension('OVR_multiview2');\r\n // Draw buffers\r\n if (this._webGLVersion > 1) {\r\n this._caps.drawBuffersExtension = true;\r\n this._caps.maxMSAASamples = this._gl.getParameter(this._gl.MAX_SAMPLES);\r\n }\r\n else {\r\n var drawBuffersExtension = this._gl.getExtension('WEBGL_draw_buffers');\r\n if (drawBuffersExtension !== null) {\r\n this._caps.drawBuffersExtension = true;\r\n this._gl.drawBuffers = drawBuffersExtension.drawBuffersWEBGL.bind(drawBuffersExtension);\r\n this._gl.DRAW_FRAMEBUFFER = this._gl.FRAMEBUFFER;\r\n for (var i = 0; i < 16; i++) {\r\n this._gl[\"COLOR_ATTACHMENT\" + i + \"_WEBGL\"] = drawBuffersExtension[\"COLOR_ATTACHMENT\" + i + \"_WEBGL\"];\r\n }\r\n }\r\n else {\r\n this._caps.drawBuffersExtension = false;\r\n }\r\n }\r\n // Shader compiler threads\r\n this._caps.parallelShaderCompile = this._gl.getExtension('KHR_parallel_shader_compile');\r\n // Depth Texture\r\n if (this._webGLVersion > 1) {\r\n this._caps.depthTextureExtension = true;\r\n }\r\n else {\r\n var depthTextureExtension = this._gl.getExtension('WEBGL_depth_texture');\r\n if (depthTextureExtension != null) {\r\n this._caps.depthTextureExtension = true;\r\n this._gl.UNSIGNED_INT_24_8 = depthTextureExtension.UNSIGNED_INT_24_8_WEBGL;\r\n }\r\n }\r\n // Vertex array object\r\n if (this.disableVertexArrayObjects) {\r\n this._caps.vertexArrayObject = false;\r\n }\r\n else if (this._webGLVersion > 1) {\r\n this._caps.vertexArrayObject = true;\r\n }\r\n else {\r\n var vertexArrayObjectExtension = this._gl.getExtension('OES_vertex_array_object');\r\n if (vertexArrayObjectExtension != null) {\r\n this._caps.vertexArrayObject = true;\r\n this._gl.createVertexArray = vertexArrayObjectExtension.createVertexArrayOES.bind(vertexArrayObjectExtension);\r\n this._gl.bindVertexArray = vertexArrayObjectExtension.bindVertexArrayOES.bind(vertexArrayObjectExtension);\r\n this._gl.deleteVertexArray = vertexArrayObjectExtension.deleteVertexArrayOES.bind(vertexArrayObjectExtension);\r\n }\r\n else {\r\n this._caps.vertexArrayObject = false;\r\n }\r\n }\r\n // Instances count\r\n if (this._webGLVersion > 1) {\r\n this._caps.instancedArrays = true;\r\n }\r\n else {\r\n var instanceExtension = this._gl.getExtension('ANGLE_instanced_arrays');\r\n if (instanceExtension != null) {\r\n this._caps.instancedArrays = true;\r\n this._gl.drawArraysInstanced = instanceExtension.drawArraysInstancedANGLE.bind(instanceExtension);\r\n this._gl.drawElementsInstanced = instanceExtension.drawElementsInstancedANGLE.bind(instanceExtension);\r\n this._gl.vertexAttribDivisor = instanceExtension.vertexAttribDivisorANGLE.bind(instanceExtension);\r\n }\r\n else {\r\n this._caps.instancedArrays = false;\r\n }\r\n }\r\n // Intelligently add supported compressed formats in order to check for.\r\n // Check for ASTC support first as it is most powerful and to be very cross platform.\r\n // Next PVRTC & DXT, which are probably superior to ETC1/2.\r\n // Likely no hardware which supports both PVR & DXT, so order matters little.\r\n // ETC2 is newer and handles ETC1 (no alpha capability), so check for first.\r\n if (this._caps.astc) {\r\n this.texturesSupported.push('-astc.ktx');\r\n }\r\n if (this._caps.s3tc) {\r\n this.texturesSupported.push('-dxt.ktx');\r\n }\r\n if (this._caps.pvrtc) {\r\n this.texturesSupported.push('-pvrtc.ktx');\r\n }\r\n if (this._caps.etc2) {\r\n this.texturesSupported.push('-etc2.ktx');\r\n }\r\n if (this._caps.etc1) {\r\n this.texturesSupported.push('-etc1.ktx');\r\n }\r\n if (this._gl.getShaderPrecisionFormat) {\r\n var vertex_highp = this._gl.getShaderPrecisionFormat(this._gl.VERTEX_SHADER, this._gl.HIGH_FLOAT);\r\n var fragment_highp = this._gl.getShaderPrecisionFormat(this._gl.FRAGMENT_SHADER, this._gl.HIGH_FLOAT);\r\n if (vertex_highp && fragment_highp) {\r\n this._caps.highPrecisionShaderSupported = vertex_highp.precision !== 0 && fragment_highp.precision !== 0;\r\n }\r\n }\r\n if (this._webGLVersion > 1) {\r\n this._caps.blendMinMax = true;\r\n }\r\n else {\r\n var blendMinMaxExtension = this._gl.getExtension('EXT_blend_minmax');\r\n if (blendMinMaxExtension != null) {\r\n this._caps.blendMinMax = true;\r\n this._gl.MAX = blendMinMaxExtension.MAX_EXT;\r\n this._gl.MIN = blendMinMaxExtension.MIN_EXT;\r\n }\r\n else {\r\n this._caps.blendMinMax = false;\r\n }\r\n }\r\n // Depth buffer\r\n this._depthCullingState.depthTest = true;\r\n this._depthCullingState.depthFunc = this._gl.LEQUAL;\r\n this._depthCullingState.depthMask = true;\r\n // Texture maps\r\n this._maxSimultaneousTextures = this._caps.maxCombinedTexturesImageUnits;\r\n for (var slot = 0; slot < this._maxSimultaneousTextures; slot++) {\r\n this._nextFreeTextureSlots.push(slot);\r\n }\r\n };\r\n Object.defineProperty(ThinEngine.prototype, \"webGLVersion\", {\r\n /**\r\n * Gets version of the current webGL context\r\n */\r\n get: function () {\r\n return this._webGLVersion;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Gets a string idenfifying the name of the class\r\n * @returns \"Engine\" string\r\n */\r\n ThinEngine.prototype.getClassName = function () {\r\n return \"Engine\";\r\n };\r\n Object.defineProperty(ThinEngine.prototype, \"isStencilEnable\", {\r\n /**\r\n * Returns true if the stencil buffer has been enabled through the creation option of the context.\r\n */\r\n get: function () {\r\n return this._isStencilEnable;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /** @hidden */\r\n ThinEngine.prototype._prepareWorkingCanvas = function () {\r\n if (this._workingCanvas) {\r\n return;\r\n }\r\n this._workingCanvas = document.createElement(\"canvas\");\r\n var context = this._workingCanvas.getContext(\"2d\");\r\n if (context) {\r\n this._workingContext = context;\r\n }\r\n };\r\n /**\r\n * Reset the texture cache to empty state\r\n */\r\n ThinEngine.prototype.resetTextureCache = function () {\r\n for (var key in this._boundTexturesCache) {\r\n if (!this._boundTexturesCache.hasOwnProperty(key)) {\r\n continue;\r\n }\r\n this._boundTexturesCache[key] = null;\r\n }\r\n this._currentTextureChannel = -1;\r\n };\r\n /**\r\n * Gets an object containing information about the current webGL context\r\n * @returns an object containing the vender, the renderer and the version of the current webGL context\r\n */\r\n ThinEngine.prototype.getGlInfo = function () {\r\n return {\r\n vendor: this._glVendor,\r\n renderer: this._glRenderer,\r\n version: this._glVersion\r\n };\r\n };\r\n /**\r\n * Defines the hardware scaling level.\r\n * By default the hardware scaling level is computed from the window device ratio.\r\n * if level = 1 then the engine will render at the exact resolution of the canvas. If level = 0.5 then the engine will render at twice the size of the canvas.\r\n * @param level defines the level to use\r\n */\r\n ThinEngine.prototype.setHardwareScalingLevel = function (level) {\r\n this._hardwareScalingLevel = level;\r\n this.resize();\r\n };\r\n /**\r\n * Gets the current hardware scaling level.\r\n * By default the hardware scaling level is computed from the window device ratio.\r\n * if level = 1 then the engine will render at the exact resolution of the canvas. If level = 0.5 then the engine will render at twice the size of the canvas.\r\n * @returns a number indicating the current hardware scaling level\r\n */\r\n ThinEngine.prototype.getHardwareScalingLevel = function () {\r\n return this._hardwareScalingLevel;\r\n };\r\n /**\r\n * Gets the list of loaded textures\r\n * @returns an array containing all loaded textures\r\n */\r\n ThinEngine.prototype.getLoadedTexturesCache = function () {\r\n return this._internalTexturesCache;\r\n };\r\n /**\r\n * Gets the object containing all engine capabilities\r\n * @returns the EngineCapabilities object\r\n */\r\n ThinEngine.prototype.getCaps = function () {\r\n return this._caps;\r\n };\r\n /**\r\n * stop executing a render loop function and remove it from the execution array\r\n * @param renderFunction defines the function to be removed. If not provided all functions will be removed.\r\n */\r\n ThinEngine.prototype.stopRenderLoop = function (renderFunction) {\r\n if (!renderFunction) {\r\n this._activeRenderLoops = [];\r\n return;\r\n }\r\n var index = this._activeRenderLoops.indexOf(renderFunction);\r\n if (index >= 0) {\r\n this._activeRenderLoops.splice(index, 1);\r\n }\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._renderLoop = function () {\r\n if (!this._contextWasLost) {\r\n var shouldRender = true;\r\n if (!this.renderEvenInBackground && this._windowIsBackground) {\r\n shouldRender = false;\r\n }\r\n if (shouldRender) {\r\n // Start new frame\r\n this.beginFrame();\r\n for (var index = 0; index < this._activeRenderLoops.length; index++) {\r\n var renderFunction = this._activeRenderLoops[index];\r\n renderFunction();\r\n }\r\n // Present\r\n this.endFrame();\r\n }\r\n }\r\n if (this._activeRenderLoops.length > 0) {\r\n this._frameHandler = this._queueNewFrame(this._bindedRenderFunction, this.getHostWindow());\r\n }\r\n else {\r\n this._renderingQueueLaunched = false;\r\n }\r\n };\r\n /**\r\n * Gets the HTML canvas attached with the current webGL context\r\n * @returns a HTML canvas\r\n */\r\n ThinEngine.prototype.getRenderingCanvas = function () {\r\n return this._renderingCanvas;\r\n };\r\n /**\r\n * Gets host window\r\n * @returns the host window object\r\n */\r\n ThinEngine.prototype.getHostWindow = function () {\r\n if (this._renderingCanvas && this._renderingCanvas.ownerDocument && this._renderingCanvas.ownerDocument.defaultView) {\r\n return this._renderingCanvas.ownerDocument.defaultView;\r\n }\r\n return window;\r\n };\r\n /**\r\n * Gets the current render width\r\n * @param useScreen defines if screen size must be used (or the current render target if any)\r\n * @returns a number defining the current render width\r\n */\r\n ThinEngine.prototype.getRenderWidth = function (useScreen) {\r\n if (useScreen === void 0) { useScreen = false; }\r\n if (!useScreen && this._currentRenderTarget) {\r\n return this._currentRenderTarget.width;\r\n }\r\n return this._gl.drawingBufferWidth;\r\n };\r\n /**\r\n * Gets the current render height\r\n * @param useScreen defines if screen size must be used (or the current render target if any)\r\n * @returns a number defining the current render height\r\n */\r\n ThinEngine.prototype.getRenderHeight = function (useScreen) {\r\n if (useScreen === void 0) { useScreen = false; }\r\n if (!useScreen && this._currentRenderTarget) {\r\n return this._currentRenderTarget.height;\r\n }\r\n return this._gl.drawingBufferHeight;\r\n };\r\n /**\r\n * Can be used to override the current requestAnimationFrame requester.\r\n * @hidden\r\n */\r\n ThinEngine.prototype._queueNewFrame = function (bindedRenderFunction, requester) {\r\n return ThinEngine.QueueNewFrame(bindedRenderFunction, requester);\r\n };\r\n /**\r\n * Register and execute a render loop. The engine can have more than one render function\r\n * @param renderFunction defines the function to continuously execute\r\n */\r\n ThinEngine.prototype.runRenderLoop = function (renderFunction) {\r\n if (this._activeRenderLoops.indexOf(renderFunction) !== -1) {\r\n return;\r\n }\r\n this._activeRenderLoops.push(renderFunction);\r\n if (!this._renderingQueueLaunched) {\r\n this._renderingQueueLaunched = true;\r\n this._bindedRenderFunction = this._renderLoop.bind(this);\r\n this._frameHandler = this._queueNewFrame(this._bindedRenderFunction, this.getHostWindow());\r\n }\r\n };\r\n /**\r\n * Clear the current render buffer or the current render target (if any is set up)\r\n * @param color defines the color to use\r\n * @param backBuffer defines if the back buffer must be cleared\r\n * @param depth defines if the depth buffer must be cleared\r\n * @param stencil defines if the stencil buffer must be cleared\r\n */\r\n ThinEngine.prototype.clear = function (color, backBuffer, depth, stencil) {\r\n if (stencil === void 0) { stencil = false; }\r\n this.applyStates();\r\n var mode = 0;\r\n if (backBuffer && color) {\r\n this._gl.clearColor(color.r, color.g, color.b, color.a !== undefined ? color.a : 1.0);\r\n mode |= this._gl.COLOR_BUFFER_BIT;\r\n }\r\n if (depth) {\r\n this._gl.clearDepth(1.0);\r\n mode |= this._gl.DEPTH_BUFFER_BIT;\r\n }\r\n if (stencil) {\r\n this._gl.clearStencil(0);\r\n mode |= this._gl.STENCIL_BUFFER_BIT;\r\n }\r\n this._gl.clear(mode);\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._viewport = function (x, y, width, height) {\r\n if (x !== this._viewportCached.x ||\r\n y !== this._viewportCached.y ||\r\n width !== this._viewportCached.z ||\r\n height !== this._viewportCached.w) {\r\n this._viewportCached.x = x;\r\n this._viewportCached.y = y;\r\n this._viewportCached.z = width;\r\n this._viewportCached.w = height;\r\n this._gl.viewport(x, y, width, height);\r\n }\r\n };\r\n /**\r\n * Set the WebGL's viewport\r\n * @param viewport defines the viewport element to be used\r\n * @param requiredWidth defines the width required for rendering. If not provided the rendering canvas' width is used\r\n * @param requiredHeight defines the height required for rendering. If not provided the rendering canvas' height is used\r\n */\r\n ThinEngine.prototype.setViewport = function (viewport, requiredWidth, requiredHeight) {\r\n var width = requiredWidth || this.getRenderWidth();\r\n var height = requiredHeight || this.getRenderHeight();\r\n var x = viewport.x || 0;\r\n var y = viewport.y || 0;\r\n this._cachedViewport = viewport;\r\n this._viewport(x * width, y * height, width * viewport.width, height * viewport.height);\r\n };\r\n /**\r\n * Begin a new frame\r\n */\r\n ThinEngine.prototype.beginFrame = function () {\r\n };\r\n /**\r\n * Enf the current frame\r\n */\r\n ThinEngine.prototype.endFrame = function () {\r\n // Force a flush in case we are using a bad OS.\r\n if (this._badOS) {\r\n this.flushFramebuffer();\r\n }\r\n };\r\n /**\r\n * Resize the view according to the canvas' size\r\n */\r\n ThinEngine.prototype.resize = function () {\r\n var width = this._renderingCanvas ? this._renderingCanvas.clientWidth : window.innerWidth;\r\n var height = this._renderingCanvas ? this._renderingCanvas.clientHeight : window.innerHeight;\r\n this.setSize(width / this._hardwareScalingLevel, height / this._hardwareScalingLevel);\r\n };\r\n /**\r\n * Force a specific size of the canvas\r\n * @param width defines the new canvas' width\r\n * @param height defines the new canvas' height\r\n */\r\n ThinEngine.prototype.setSize = function (width, height) {\r\n if (!this._renderingCanvas) {\r\n return;\r\n }\r\n width = width | 0;\r\n height = height | 0;\r\n if (this._renderingCanvas.width === width && this._renderingCanvas.height === height) {\r\n return;\r\n }\r\n this._renderingCanvas.width = width;\r\n this._renderingCanvas.height = height;\r\n };\r\n /**\r\n * Binds the frame buffer to the specified texture.\r\n * @param texture The texture to render to or null for the default canvas\r\n * @param faceIndex The face of the texture to render to in case of cube texture\r\n * @param requiredWidth The width of the target to render to\r\n * @param requiredHeight The height of the target to render to\r\n * @param forceFullscreenViewport Forces the viewport to be the entire texture/screen if true\r\n * @param depthStencilTexture The depth stencil texture to use to render\r\n * @param lodLevel defines le lod level to bind to the frame buffer\r\n */\r\n ThinEngine.prototype.bindFramebuffer = function (texture, faceIndex, requiredWidth, requiredHeight, forceFullscreenViewport, depthStencilTexture, lodLevel) {\r\n if (lodLevel === void 0) { lodLevel = 0; }\r\n if (this._currentRenderTarget) {\r\n this.unBindFramebuffer(this._currentRenderTarget);\r\n }\r\n this._currentRenderTarget = texture;\r\n this._bindUnboundFramebuffer(texture._MSAAFramebuffer ? texture._MSAAFramebuffer : texture._framebuffer);\r\n var gl = this._gl;\r\n if (texture.isCube) {\r\n if (faceIndex === undefined) {\r\n faceIndex = 0;\r\n }\r\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex, texture._webGLTexture, lodLevel);\r\n if (depthStencilTexture) {\r\n if (depthStencilTexture._generateStencilBuffer) {\r\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex, depthStencilTexture._webGLTexture, lodLevel);\r\n }\r\n else {\r\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex, depthStencilTexture._webGLTexture, lodLevel);\r\n }\r\n }\r\n }\r\n if (this._cachedViewport && !forceFullscreenViewport) {\r\n this.setViewport(this._cachedViewport, requiredWidth, requiredHeight);\r\n }\r\n else {\r\n if (!requiredWidth) {\r\n requiredWidth = texture.width;\r\n if (lodLevel) {\r\n requiredWidth = requiredWidth / Math.pow(2, lodLevel);\r\n }\r\n }\r\n if (!requiredHeight) {\r\n requiredHeight = texture.height;\r\n if (lodLevel) {\r\n requiredHeight = requiredHeight / Math.pow(2, lodLevel);\r\n }\r\n }\r\n this._viewport(0, 0, requiredWidth, requiredHeight);\r\n }\r\n this.wipeCaches();\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._bindUnboundFramebuffer = function (framebuffer) {\r\n if (this._currentFramebuffer !== framebuffer) {\r\n this._gl.bindFramebuffer(this._gl.FRAMEBUFFER, framebuffer);\r\n this._currentFramebuffer = framebuffer;\r\n }\r\n };\r\n /**\r\n * Unbind the current render target texture from the webGL context\r\n * @param texture defines the render target texture to unbind\r\n * @param disableGenerateMipMaps defines a boolean indicating that mipmaps must not be generated\r\n * @param onBeforeUnbind defines a function which will be called before the effective unbind\r\n */\r\n ThinEngine.prototype.unBindFramebuffer = function (texture, disableGenerateMipMaps, onBeforeUnbind) {\r\n if (disableGenerateMipMaps === void 0) { disableGenerateMipMaps = false; }\r\n this._currentRenderTarget = null;\r\n // If MSAA, we need to bitblt back to main texture\r\n var gl = this._gl;\r\n if (texture._MSAAFramebuffer) {\r\n gl.bindFramebuffer(gl.READ_FRAMEBUFFER, texture._MSAAFramebuffer);\r\n gl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, texture._framebuffer);\r\n gl.blitFramebuffer(0, 0, texture.width, texture.height, 0, 0, texture.width, texture.height, gl.COLOR_BUFFER_BIT, gl.NEAREST);\r\n }\r\n if (texture.generateMipMaps && !disableGenerateMipMaps && !texture.isCube) {\r\n this._bindTextureDirectly(gl.TEXTURE_2D, texture, true);\r\n gl.generateMipmap(gl.TEXTURE_2D);\r\n this._bindTextureDirectly(gl.TEXTURE_2D, null);\r\n }\r\n if (onBeforeUnbind) {\r\n if (texture._MSAAFramebuffer) {\r\n // Bind the correct framebuffer\r\n this._bindUnboundFramebuffer(texture._framebuffer);\r\n }\r\n onBeforeUnbind();\r\n }\r\n this._bindUnboundFramebuffer(null);\r\n };\r\n /**\r\n * Force a webGL flush (ie. a flush of all waiting webGL commands)\r\n */\r\n ThinEngine.prototype.flushFramebuffer = function () {\r\n this._gl.flush();\r\n };\r\n /**\r\n * Unbind the current render target and bind the default framebuffer\r\n */\r\n ThinEngine.prototype.restoreDefaultFramebuffer = function () {\r\n if (this._currentRenderTarget) {\r\n this.unBindFramebuffer(this._currentRenderTarget);\r\n }\r\n else {\r\n this._bindUnboundFramebuffer(null);\r\n }\r\n if (this._cachedViewport) {\r\n this.setViewport(this._cachedViewport);\r\n }\r\n this.wipeCaches();\r\n };\r\n // VBOs\r\n ThinEngine.prototype._resetVertexBufferBinding = function () {\r\n this.bindArrayBuffer(null);\r\n this._cachedVertexBuffers = null;\r\n };\r\n /**\r\n * Creates a vertex buffer\r\n * @param data the data for the vertex buffer\r\n * @returns the new WebGL static buffer\r\n */\r\n ThinEngine.prototype.createVertexBuffer = function (data) {\r\n return this._createVertexBuffer(data, this._gl.STATIC_DRAW);\r\n };\r\n ThinEngine.prototype._createVertexBuffer = function (data, usage) {\r\n var vbo = this._gl.createBuffer();\r\n if (!vbo) {\r\n throw new Error(\"Unable to create vertex buffer\");\r\n }\r\n var dataBuffer = new WebGLDataBuffer(vbo);\r\n this.bindArrayBuffer(dataBuffer);\r\n if (data instanceof Array) {\r\n this._gl.bufferData(this._gl.ARRAY_BUFFER, new Float32Array(data), this._gl.STATIC_DRAW);\r\n }\r\n else {\r\n this._gl.bufferData(this._gl.ARRAY_BUFFER, data, this._gl.STATIC_DRAW);\r\n }\r\n this._resetVertexBufferBinding();\r\n dataBuffer.references = 1;\r\n return dataBuffer;\r\n };\r\n /**\r\n * Creates a dynamic vertex buffer\r\n * @param data the data for the dynamic vertex buffer\r\n * @returns the new WebGL dynamic buffer\r\n */\r\n ThinEngine.prototype.createDynamicVertexBuffer = function (data) {\r\n return this._createVertexBuffer(data, this._gl.DYNAMIC_DRAW);\r\n };\r\n /**\r\n * Update a dynamic index buffer\r\n * @param indexBuffer defines the target index buffer\r\n * @param indices defines the data to update\r\n * @param offset defines the offset in the target index buffer where update should start\r\n */\r\n ThinEngine.prototype.updateDynamicIndexBuffer = function (indexBuffer, indices, offset) {\r\n if (offset === void 0) { offset = 0; }\r\n // Force cache update\r\n this._currentBoundBuffer[this._gl.ELEMENT_ARRAY_BUFFER] = null;\r\n this.bindIndexBuffer(indexBuffer);\r\n var arrayBuffer;\r\n if (indices instanceof Uint16Array || indices instanceof Uint32Array) {\r\n arrayBuffer = indices;\r\n }\r\n else {\r\n arrayBuffer = indexBuffer.is32Bits ? new Uint32Array(indices) : new Uint16Array(indices);\r\n }\r\n this._gl.bufferData(this._gl.ELEMENT_ARRAY_BUFFER, arrayBuffer, this._gl.DYNAMIC_DRAW);\r\n this._resetIndexBufferBinding();\r\n };\r\n /**\r\n * Updates a dynamic vertex buffer.\r\n * @param vertexBuffer the vertex buffer to update\r\n * @param data the data used to update the vertex buffer\r\n * @param byteOffset the byte offset of the data\r\n * @param byteLength the byte length of the data\r\n */\r\n ThinEngine.prototype.updateDynamicVertexBuffer = function (vertexBuffer, data, byteOffset, byteLength) {\r\n this.bindArrayBuffer(vertexBuffer);\r\n if (byteOffset === undefined) {\r\n byteOffset = 0;\r\n }\r\n if (byteLength === undefined) {\r\n if (data instanceof Array) {\r\n this._gl.bufferSubData(this._gl.ARRAY_BUFFER, byteOffset, new Float32Array(data));\r\n }\r\n else {\r\n this._gl.bufferSubData(this._gl.ARRAY_BUFFER, byteOffset, data);\r\n }\r\n }\r\n else {\r\n if (data instanceof Array) {\r\n this._gl.bufferSubData(this._gl.ARRAY_BUFFER, 0, new Float32Array(data).subarray(byteOffset, byteOffset + byteLength));\r\n }\r\n else {\r\n if (data instanceof ArrayBuffer) {\r\n data = new Uint8Array(data, byteOffset, byteLength);\r\n }\r\n else {\r\n data = new Uint8Array(data.buffer, data.byteOffset + byteOffset, byteLength);\r\n }\r\n this._gl.bufferSubData(this._gl.ARRAY_BUFFER, 0, data);\r\n }\r\n }\r\n this._resetVertexBufferBinding();\r\n };\r\n ThinEngine.prototype._resetIndexBufferBinding = function () {\r\n this.bindIndexBuffer(null);\r\n this._cachedIndexBuffer = null;\r\n };\r\n /**\r\n * Creates a new index buffer\r\n * @param indices defines the content of the index buffer\r\n * @param updatable defines if the index buffer must be updatable\r\n * @returns a new webGL buffer\r\n */\r\n ThinEngine.prototype.createIndexBuffer = function (indices, updatable) {\r\n var vbo = this._gl.createBuffer();\r\n var dataBuffer = new WebGLDataBuffer(vbo);\r\n if (!vbo) {\r\n throw new Error(\"Unable to create index buffer\");\r\n }\r\n this.bindIndexBuffer(dataBuffer);\r\n var data = this._normalizeIndexData(indices);\r\n this._gl.bufferData(this._gl.ELEMENT_ARRAY_BUFFER, data, updatable ? this._gl.DYNAMIC_DRAW : this._gl.STATIC_DRAW);\r\n this._resetIndexBufferBinding();\r\n dataBuffer.references = 1;\r\n dataBuffer.is32Bits = (data.BYTES_PER_ELEMENT === 4);\r\n return dataBuffer;\r\n };\r\n ThinEngine.prototype._normalizeIndexData = function (indices) {\r\n if (indices instanceof Uint16Array) {\r\n return indices;\r\n }\r\n // Check 32 bit support\r\n if (this._caps.uintIndices) {\r\n if (indices instanceof Uint32Array) {\r\n return indices;\r\n }\r\n else {\r\n // number[] or Int32Array, check if 32 bit is necessary\r\n for (var index = 0; index < indices.length; index++) {\r\n if (indices[index] >= 65535) {\r\n return new Uint32Array(indices);\r\n }\r\n }\r\n return new Uint16Array(indices);\r\n }\r\n }\r\n // No 32 bit support, force conversion to 16 bit (values greater 16 bit are lost)\r\n return new Uint16Array(indices);\r\n };\r\n /**\r\n * Bind a webGL buffer to the webGL context\r\n * @param buffer defines the buffer to bind\r\n */\r\n ThinEngine.prototype.bindArrayBuffer = function (buffer) {\r\n if (!this._vaoRecordInProgress) {\r\n this._unbindVertexArrayObject();\r\n }\r\n this.bindBuffer(buffer, this._gl.ARRAY_BUFFER);\r\n };\r\n /**\r\n * Bind a specific block at a given index in a specific shader program\r\n * @param pipelineContext defines the pipeline context to use\r\n * @param blockName defines the block name\r\n * @param index defines the index where to bind the block\r\n */\r\n ThinEngine.prototype.bindUniformBlock = function (pipelineContext, blockName, index) {\r\n var program = pipelineContext.program;\r\n var uniformLocation = this._gl.getUniformBlockIndex(program, blockName);\r\n this._gl.uniformBlockBinding(program, uniformLocation, index);\r\n };\r\n ThinEngine.prototype.bindIndexBuffer = function (buffer) {\r\n if (!this._vaoRecordInProgress) {\r\n this._unbindVertexArrayObject();\r\n }\r\n this.bindBuffer(buffer, this._gl.ELEMENT_ARRAY_BUFFER);\r\n };\r\n ThinEngine.prototype.bindBuffer = function (buffer, target) {\r\n if (this._vaoRecordInProgress || this._currentBoundBuffer[target] !== buffer) {\r\n this._gl.bindBuffer(target, buffer ? buffer.underlyingResource : null);\r\n this._currentBoundBuffer[target] = buffer;\r\n }\r\n };\r\n /**\r\n * update the bound buffer with the given data\r\n * @param data defines the data to update\r\n */\r\n ThinEngine.prototype.updateArrayBuffer = function (data) {\r\n this._gl.bufferSubData(this._gl.ARRAY_BUFFER, 0, data);\r\n };\r\n ThinEngine.prototype._vertexAttribPointer = function (buffer, indx, size, type, normalized, stride, offset) {\r\n var pointer = this._currentBufferPointers[indx];\r\n var changed = false;\r\n if (!pointer.active) {\r\n changed = true;\r\n pointer.active = true;\r\n pointer.index = indx;\r\n pointer.size = size;\r\n pointer.type = type;\r\n pointer.normalized = normalized;\r\n pointer.stride = stride;\r\n pointer.offset = offset;\r\n pointer.buffer = buffer;\r\n }\r\n else {\r\n if (pointer.buffer !== buffer) {\r\n pointer.buffer = buffer;\r\n changed = true;\r\n }\r\n if (pointer.size !== size) {\r\n pointer.size = size;\r\n changed = true;\r\n }\r\n if (pointer.type !== type) {\r\n pointer.type = type;\r\n changed = true;\r\n }\r\n if (pointer.normalized !== normalized) {\r\n pointer.normalized = normalized;\r\n changed = true;\r\n }\r\n if (pointer.stride !== stride) {\r\n pointer.stride = stride;\r\n changed = true;\r\n }\r\n if (pointer.offset !== offset) {\r\n pointer.offset = offset;\r\n changed = true;\r\n }\r\n }\r\n if (changed || this._vaoRecordInProgress) {\r\n this.bindArrayBuffer(buffer);\r\n this._gl.vertexAttribPointer(indx, size, type, normalized, stride, offset);\r\n }\r\n };\r\n ThinEngine.prototype._bindIndexBufferWithCache = function (indexBuffer) {\r\n if (indexBuffer == null) {\r\n return;\r\n }\r\n if (this._cachedIndexBuffer !== indexBuffer) {\r\n this._cachedIndexBuffer = indexBuffer;\r\n this.bindIndexBuffer(indexBuffer);\r\n this._uintIndicesCurrentlySet = indexBuffer.is32Bits;\r\n }\r\n };\r\n ThinEngine.prototype._bindVertexBuffersAttributes = function (vertexBuffers, effect) {\r\n var attributes = effect.getAttributesNames();\r\n if (!this._vaoRecordInProgress) {\r\n this._unbindVertexArrayObject();\r\n }\r\n this.unbindAllAttributes();\r\n for (var index = 0; index < attributes.length; index++) {\r\n var order = effect.getAttributeLocation(index);\r\n if (order >= 0) {\r\n var vertexBuffer = vertexBuffers[attributes[index]];\r\n if (!vertexBuffer) {\r\n continue;\r\n }\r\n this._gl.enableVertexAttribArray(order);\r\n if (!this._vaoRecordInProgress) {\r\n this._vertexAttribArraysEnabled[order] = true;\r\n }\r\n var buffer = vertexBuffer.getBuffer();\r\n if (buffer) {\r\n this._vertexAttribPointer(buffer, order, vertexBuffer.getSize(), vertexBuffer.type, vertexBuffer.normalized, vertexBuffer.byteStride, vertexBuffer.byteOffset);\r\n if (vertexBuffer.getIsInstanced()) {\r\n this._gl.vertexAttribDivisor(order, vertexBuffer.getInstanceDivisor());\r\n if (!this._vaoRecordInProgress) {\r\n this._currentInstanceLocations.push(order);\r\n this._currentInstanceBuffers.push(buffer);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Records a vertex array object\r\n * @see http://doc.babylonjs.com/features/webgl2#vertex-array-objects\r\n * @param vertexBuffers defines the list of vertex buffers to store\r\n * @param indexBuffer defines the index buffer to store\r\n * @param effect defines the effect to store\r\n * @returns the new vertex array object\r\n */\r\n ThinEngine.prototype.recordVertexArrayObject = function (vertexBuffers, indexBuffer, effect) {\r\n var vao = this._gl.createVertexArray();\r\n this._vaoRecordInProgress = true;\r\n this._gl.bindVertexArray(vao);\r\n this._mustWipeVertexAttributes = true;\r\n this._bindVertexBuffersAttributes(vertexBuffers, effect);\r\n this.bindIndexBuffer(indexBuffer);\r\n this._vaoRecordInProgress = false;\r\n this._gl.bindVertexArray(null);\r\n return vao;\r\n };\r\n /**\r\n * Bind a specific vertex array object\r\n * @see http://doc.babylonjs.com/features/webgl2#vertex-array-objects\r\n * @param vertexArrayObject defines the vertex array object to bind\r\n * @param indexBuffer defines the index buffer to bind\r\n */\r\n ThinEngine.prototype.bindVertexArrayObject = function (vertexArrayObject, indexBuffer) {\r\n if (this._cachedVertexArrayObject !== vertexArrayObject) {\r\n this._cachedVertexArrayObject = vertexArrayObject;\r\n this._gl.bindVertexArray(vertexArrayObject);\r\n this._cachedVertexBuffers = null;\r\n this._cachedIndexBuffer = null;\r\n this._uintIndicesCurrentlySet = indexBuffer != null && indexBuffer.is32Bits;\r\n this._mustWipeVertexAttributes = true;\r\n }\r\n };\r\n /**\r\n * Bind webGl buffers directly to the webGL context\r\n * @param vertexBuffer defines the vertex buffer to bind\r\n * @param indexBuffer defines the index buffer to bind\r\n * @param vertexDeclaration defines the vertex declaration to use with the vertex buffer\r\n * @param vertexStrideSize defines the vertex stride of the vertex buffer\r\n * @param effect defines the effect associated with the vertex buffer\r\n */\r\n ThinEngine.prototype.bindBuffersDirectly = function (vertexBuffer, indexBuffer, vertexDeclaration, vertexStrideSize, effect) {\r\n if (this._cachedVertexBuffers !== vertexBuffer || this._cachedEffectForVertexBuffers !== effect) {\r\n this._cachedVertexBuffers = vertexBuffer;\r\n this._cachedEffectForVertexBuffers = effect;\r\n var attributesCount = effect.getAttributesCount();\r\n this._unbindVertexArrayObject();\r\n this.unbindAllAttributes();\r\n var offset = 0;\r\n for (var index = 0; index < attributesCount; index++) {\r\n if (index < vertexDeclaration.length) {\r\n var order = effect.getAttributeLocation(index);\r\n if (order >= 0) {\r\n this._gl.enableVertexAttribArray(order);\r\n this._vertexAttribArraysEnabled[order] = true;\r\n this._vertexAttribPointer(vertexBuffer, order, vertexDeclaration[index], this._gl.FLOAT, false, vertexStrideSize, offset);\r\n }\r\n offset += vertexDeclaration[index] * 4;\r\n }\r\n }\r\n }\r\n this._bindIndexBufferWithCache(indexBuffer);\r\n };\r\n ThinEngine.prototype._unbindVertexArrayObject = function () {\r\n if (!this._cachedVertexArrayObject) {\r\n return;\r\n }\r\n this._cachedVertexArrayObject = null;\r\n this._gl.bindVertexArray(null);\r\n };\r\n /**\r\n * Bind a list of vertex buffers to the webGL context\r\n * @param vertexBuffers defines the list of vertex buffers to bind\r\n * @param indexBuffer defines the index buffer to bind\r\n * @param effect defines the effect associated with the vertex buffers\r\n */\r\n ThinEngine.prototype.bindBuffers = function (vertexBuffers, indexBuffer, effect) {\r\n if (this._cachedVertexBuffers !== vertexBuffers || this._cachedEffectForVertexBuffers !== effect) {\r\n this._cachedVertexBuffers = vertexBuffers;\r\n this._cachedEffectForVertexBuffers = effect;\r\n this._bindVertexBuffersAttributes(vertexBuffers, effect);\r\n }\r\n this._bindIndexBufferWithCache(indexBuffer);\r\n };\r\n /**\r\n * Unbind all instance attributes\r\n */\r\n ThinEngine.prototype.unbindInstanceAttributes = function () {\r\n var boundBuffer;\r\n for (var i = 0, ul = this._currentInstanceLocations.length; i < ul; i++) {\r\n var instancesBuffer = this._currentInstanceBuffers[i];\r\n if (boundBuffer != instancesBuffer && instancesBuffer.references) {\r\n boundBuffer = instancesBuffer;\r\n this.bindArrayBuffer(instancesBuffer);\r\n }\r\n var offsetLocation = this._currentInstanceLocations[i];\r\n this._gl.vertexAttribDivisor(offsetLocation, 0);\r\n }\r\n this._currentInstanceBuffers.length = 0;\r\n this._currentInstanceLocations.length = 0;\r\n };\r\n /**\r\n * Release and free the memory of a vertex array object\r\n * @param vao defines the vertex array object to delete\r\n */\r\n ThinEngine.prototype.releaseVertexArrayObject = function (vao) {\r\n this._gl.deleteVertexArray(vao);\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._releaseBuffer = function (buffer) {\r\n buffer.references--;\r\n if (buffer.references === 0) {\r\n this._deleteBuffer(buffer);\r\n return true;\r\n }\r\n return false;\r\n };\r\n ThinEngine.prototype._deleteBuffer = function (buffer) {\r\n this._gl.deleteBuffer(buffer.underlyingResource);\r\n };\r\n /**\r\n * Creates a webGL buffer to use with instanciation\r\n * @param capacity defines the size of the buffer\r\n * @returns the webGL buffer\r\n */\r\n ThinEngine.prototype.createInstancesBuffer = function (capacity) {\r\n var buffer = this._gl.createBuffer();\r\n if (!buffer) {\r\n throw new Error(\"Unable to create instance buffer\");\r\n }\r\n var result = new WebGLDataBuffer(buffer);\r\n result.capacity = capacity;\r\n this.bindArrayBuffer(result);\r\n this._gl.bufferData(this._gl.ARRAY_BUFFER, capacity, this._gl.DYNAMIC_DRAW);\r\n return result;\r\n };\r\n /**\r\n * Delete a webGL buffer used with instanciation\r\n * @param buffer defines the webGL buffer to delete\r\n */\r\n ThinEngine.prototype.deleteInstancesBuffer = function (buffer) {\r\n this._gl.deleteBuffer(buffer);\r\n };\r\n /**\r\n * Update the content of a webGL buffer used with instanciation and bind it to the webGL context\r\n * @param instancesBuffer defines the webGL buffer to update and bind\r\n * @param data defines the data to store in the buffer\r\n * @param offsetLocations defines the offsets or attributes information used to determine where data must be stored in the buffer\r\n */\r\n ThinEngine.prototype.updateAndBindInstancesBuffer = function (instancesBuffer, data, offsetLocations) {\r\n this.bindArrayBuffer(instancesBuffer);\r\n if (data) {\r\n this._gl.bufferSubData(this._gl.ARRAY_BUFFER, 0, data);\r\n }\r\n if (offsetLocations[0].index !== undefined) {\r\n var stride = 0;\r\n for (var i = 0; i < offsetLocations.length; i++) {\r\n var ai = offsetLocations[i];\r\n stride += ai.attributeSize * 4;\r\n }\r\n for (var i = 0; i < offsetLocations.length; i++) {\r\n var ai = offsetLocations[i];\r\n if (!this._vertexAttribArraysEnabled[ai.index]) {\r\n this._gl.enableVertexAttribArray(ai.index);\r\n this._vertexAttribArraysEnabled[ai.index] = true;\r\n }\r\n this._vertexAttribPointer(instancesBuffer, ai.index, ai.attributeSize, ai.attribyteType || this._gl.FLOAT, ai.normalized || false, stride, ai.offset);\r\n this._gl.vertexAttribDivisor(ai.index, 1);\r\n this._currentInstanceLocations.push(ai.index);\r\n this._currentInstanceBuffers.push(instancesBuffer);\r\n }\r\n }\r\n else {\r\n for (var index = 0; index < 4; index++) {\r\n var offsetLocation = offsetLocations[index];\r\n if (!this._vertexAttribArraysEnabled[offsetLocation]) {\r\n this._gl.enableVertexAttribArray(offsetLocation);\r\n this._vertexAttribArraysEnabled[offsetLocation] = true;\r\n }\r\n this._vertexAttribPointer(instancesBuffer, offsetLocation, 4, this._gl.FLOAT, false, 64, index * 16);\r\n this._gl.vertexAttribDivisor(offsetLocation, 1);\r\n this._currentInstanceLocations.push(offsetLocation);\r\n this._currentInstanceBuffers.push(instancesBuffer);\r\n }\r\n }\r\n };\r\n /**\r\n * Apply all cached states (depth, culling, stencil and alpha)\r\n */\r\n ThinEngine.prototype.applyStates = function () {\r\n this._depthCullingState.apply(this._gl);\r\n this._stencilState.apply(this._gl);\r\n this._alphaState.apply(this._gl);\r\n };\r\n /**\r\n * Send a draw order\r\n * @param useTriangles defines if triangles must be used to draw (else wireframe will be used)\r\n * @param indexStart defines the starting index\r\n * @param indexCount defines the number of index to draw\r\n * @param instancesCount defines the number of instances to draw (if instanciation is enabled)\r\n */\r\n ThinEngine.prototype.draw = function (useTriangles, indexStart, indexCount, instancesCount) {\r\n this.drawElementsType(useTriangles ? Constants.MATERIAL_TriangleFillMode : Constants.MATERIAL_WireFrameFillMode, indexStart, indexCount, instancesCount);\r\n };\r\n /**\r\n * Draw a list of points\r\n * @param verticesStart defines the index of first vertex to draw\r\n * @param verticesCount defines the count of vertices to draw\r\n * @param instancesCount defines the number of instances to draw (if instanciation is enabled)\r\n */\r\n ThinEngine.prototype.drawPointClouds = function (verticesStart, verticesCount, instancesCount) {\r\n this.drawArraysType(Constants.MATERIAL_PointFillMode, verticesStart, verticesCount, instancesCount);\r\n };\r\n /**\r\n * Draw a list of unindexed primitives\r\n * @param useTriangles defines if triangles must be used to draw (else wireframe will be used)\r\n * @param verticesStart defines the index of first vertex to draw\r\n * @param verticesCount defines the count of vertices to draw\r\n * @param instancesCount defines the number of instances to draw (if instanciation is enabled)\r\n */\r\n ThinEngine.prototype.drawUnIndexed = function (useTriangles, verticesStart, verticesCount, instancesCount) {\r\n this.drawArraysType(useTriangles ? Constants.MATERIAL_TriangleFillMode : Constants.MATERIAL_WireFrameFillMode, verticesStart, verticesCount, instancesCount);\r\n };\r\n /**\r\n * Draw a list of indexed primitives\r\n * @param fillMode defines the primitive to use\r\n * @param indexStart defines the starting index\r\n * @param indexCount defines the number of index to draw\r\n * @param instancesCount defines the number of instances to draw (if instanciation is enabled)\r\n */\r\n ThinEngine.prototype.drawElementsType = function (fillMode, indexStart, indexCount, instancesCount) {\r\n // Apply states\r\n this.applyStates();\r\n this._drawCalls.addCount(1, false);\r\n // Render\r\n var drawMode = this._drawMode(fillMode);\r\n var indexFormat = this._uintIndicesCurrentlySet ? this._gl.UNSIGNED_INT : this._gl.UNSIGNED_SHORT;\r\n var mult = this._uintIndicesCurrentlySet ? 4 : 2;\r\n if (instancesCount) {\r\n this._gl.drawElementsInstanced(drawMode, indexCount, indexFormat, indexStart * mult, instancesCount);\r\n }\r\n else {\r\n this._gl.drawElements(drawMode, indexCount, indexFormat, indexStart * mult);\r\n }\r\n };\r\n /**\r\n * Draw a list of unindexed primitives\r\n * @param fillMode defines the primitive to use\r\n * @param verticesStart defines the index of first vertex to draw\r\n * @param verticesCount defines the count of vertices to draw\r\n * @param instancesCount defines the number of instances to draw (if instanciation is enabled)\r\n */\r\n ThinEngine.prototype.drawArraysType = function (fillMode, verticesStart, verticesCount, instancesCount) {\r\n // Apply states\r\n this.applyStates();\r\n this._drawCalls.addCount(1, false);\r\n var drawMode = this._drawMode(fillMode);\r\n if (instancesCount) {\r\n this._gl.drawArraysInstanced(drawMode, verticesStart, verticesCount, instancesCount);\r\n }\r\n else {\r\n this._gl.drawArrays(drawMode, verticesStart, verticesCount);\r\n }\r\n };\r\n ThinEngine.prototype._drawMode = function (fillMode) {\r\n switch (fillMode) {\r\n // Triangle views\r\n case Constants.MATERIAL_TriangleFillMode:\r\n return this._gl.TRIANGLES;\r\n case Constants.MATERIAL_PointFillMode:\r\n return this._gl.POINTS;\r\n case Constants.MATERIAL_WireFrameFillMode:\r\n return this._gl.LINES;\r\n // Draw modes\r\n case Constants.MATERIAL_PointListDrawMode:\r\n return this._gl.POINTS;\r\n case Constants.MATERIAL_LineListDrawMode:\r\n return this._gl.LINES;\r\n case Constants.MATERIAL_LineLoopDrawMode:\r\n return this._gl.LINE_LOOP;\r\n case Constants.MATERIAL_LineStripDrawMode:\r\n return this._gl.LINE_STRIP;\r\n case Constants.MATERIAL_TriangleStripDrawMode:\r\n return this._gl.TRIANGLE_STRIP;\r\n case Constants.MATERIAL_TriangleFanDrawMode:\r\n return this._gl.TRIANGLE_FAN;\r\n default:\r\n return this._gl.TRIANGLES;\r\n }\r\n };\r\n // Shaders\r\n /** @hidden */\r\n ThinEngine.prototype._releaseEffect = function (effect) {\r\n if (this._compiledEffects[effect._key]) {\r\n delete this._compiledEffects[effect._key];\r\n this._deletePipelineContext(effect.getPipelineContext());\r\n }\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._deletePipelineContext = function (pipelineContext) {\r\n var webGLPipelineContext = pipelineContext;\r\n if (webGLPipelineContext && webGLPipelineContext.program) {\r\n webGLPipelineContext.program.__SPECTOR_rebuildProgram = null;\r\n this._gl.deleteProgram(webGLPipelineContext.program);\r\n }\r\n };\r\n /**\r\n * Create a new effect (used to store vertex/fragment shaders)\r\n * @param baseName defines the base name of the effect (The name of file without .fragment.fx or .vertex.fx)\r\n * @param attributesNamesOrOptions defines either a list of attribute names or an EffectCreationOptions object\r\n * @param uniformsNamesOrEngine defines either a list of uniform names or the engine to use\r\n * @param samplers defines an array of string used to represent textures\r\n * @param defines defines the string containing the defines to use to compile the shaders\r\n * @param fallbacks defines the list of potential fallbacks to use if shader conmpilation fails\r\n * @param onCompiled defines a function to call when the effect creation is successful\r\n * @param onError defines a function to call when the effect creation has failed\r\n * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)\r\n * @returns the new Effect\r\n */\r\n ThinEngine.prototype.createEffect = function (baseName, attributesNamesOrOptions, uniformsNamesOrEngine, samplers, defines, fallbacks, onCompiled, onError, indexParameters) {\r\n var vertex = baseName.vertexElement || baseName.vertex || baseName;\r\n var fragment = baseName.fragmentElement || baseName.fragment || baseName;\r\n var name = vertex + \"+\" + fragment + \"@\" + (defines ? defines : attributesNamesOrOptions.defines);\r\n if (this._compiledEffects[name]) {\r\n var compiledEffect = this._compiledEffects[name];\r\n if (onCompiled && compiledEffect.isReady()) {\r\n onCompiled(compiledEffect);\r\n }\r\n return compiledEffect;\r\n }\r\n var effect = new Effect(baseName, attributesNamesOrOptions, uniformsNamesOrEngine, samplers, this, defines, fallbacks, onCompiled, onError, indexParameters);\r\n effect._key = name;\r\n this._compiledEffects[name] = effect;\r\n return effect;\r\n };\r\n ThinEngine._ConcatenateShader = function (source, defines, shaderVersion) {\r\n if (shaderVersion === void 0) { shaderVersion = \"\"; }\r\n return shaderVersion + (defines ? defines + \"\\n\" : \"\") + source;\r\n };\r\n ThinEngine.prototype._compileShader = function (source, type, defines, shaderVersion) {\r\n return this._compileRawShader(ThinEngine._ConcatenateShader(source, defines, shaderVersion), type);\r\n };\r\n ThinEngine.prototype._compileRawShader = function (source, type) {\r\n var gl = this._gl;\r\n var shader = gl.createShader(type === \"vertex\" ? gl.VERTEX_SHADER : gl.FRAGMENT_SHADER);\r\n if (!shader) {\r\n throw new Error(\"Something went wrong while compile the shader.\");\r\n }\r\n gl.shaderSource(shader, source);\r\n gl.compileShader(shader);\r\n return shader;\r\n };\r\n /**\r\n * Directly creates a webGL program\r\n * @param pipelineContext defines the pipeline context to attach to\r\n * @param vertexCode defines the vertex shader code to use\r\n * @param fragmentCode defines the fragment shader code to use\r\n * @param context defines the webGL context to use (if not set, the current one will be used)\r\n * @param transformFeedbackVaryings defines the list of transform feedback varyings to use\r\n * @returns the new webGL program\r\n */\r\n ThinEngine.prototype.createRawShaderProgram = function (pipelineContext, vertexCode, fragmentCode, context, transformFeedbackVaryings) {\r\n if (transformFeedbackVaryings === void 0) { transformFeedbackVaryings = null; }\r\n context = context || this._gl;\r\n var vertexShader = this._compileRawShader(vertexCode, \"vertex\");\r\n var fragmentShader = this._compileRawShader(fragmentCode, \"fragment\");\r\n return this._createShaderProgram(pipelineContext, vertexShader, fragmentShader, context, transformFeedbackVaryings);\r\n };\r\n /**\r\n * Creates a webGL program\r\n * @param pipelineContext defines the pipeline context to attach to\r\n * @param vertexCode defines the vertex shader code to use\r\n * @param fragmentCode defines the fragment shader code to use\r\n * @param defines defines the string containing the defines to use to compile the shaders\r\n * @param context defines the webGL context to use (if not set, the current one will be used)\r\n * @param transformFeedbackVaryings defines the list of transform feedback varyings to use\r\n * @returns the new webGL program\r\n */\r\n ThinEngine.prototype.createShaderProgram = function (pipelineContext, vertexCode, fragmentCode, defines, context, transformFeedbackVaryings) {\r\n if (transformFeedbackVaryings === void 0) { transformFeedbackVaryings = null; }\r\n context = context || this._gl;\r\n var shaderVersion = (this._webGLVersion > 1) ? \"#version 300 es\\n#define WEBGL2 \\n\" : \"\";\r\n var vertexShader = this._compileShader(vertexCode, \"vertex\", defines, shaderVersion);\r\n var fragmentShader = this._compileShader(fragmentCode, \"fragment\", defines, shaderVersion);\r\n return this._createShaderProgram(pipelineContext, vertexShader, fragmentShader, context, transformFeedbackVaryings);\r\n };\r\n /**\r\n * Creates a new pipeline context\r\n * @returns the new pipeline\r\n */\r\n ThinEngine.prototype.createPipelineContext = function () {\r\n var pipelineContext = new WebGLPipelineContext();\r\n pipelineContext.engine = this;\r\n if (this._caps.parallelShaderCompile) {\r\n pipelineContext.isParallelCompiled = true;\r\n }\r\n return pipelineContext;\r\n };\r\n ThinEngine.prototype._createShaderProgram = function (pipelineContext, vertexShader, fragmentShader, context, transformFeedbackVaryings) {\r\n if (transformFeedbackVaryings === void 0) { transformFeedbackVaryings = null; }\r\n var shaderProgram = context.createProgram();\r\n pipelineContext.program = shaderProgram;\r\n if (!shaderProgram) {\r\n throw new Error(\"Unable to create program\");\r\n }\r\n context.attachShader(shaderProgram, vertexShader);\r\n context.attachShader(shaderProgram, fragmentShader);\r\n context.linkProgram(shaderProgram);\r\n pipelineContext.context = context;\r\n pipelineContext.vertexShader = vertexShader;\r\n pipelineContext.fragmentShader = fragmentShader;\r\n if (!pipelineContext.isParallelCompiled) {\r\n this._finalizePipelineContext(pipelineContext);\r\n }\r\n return shaderProgram;\r\n };\r\n ThinEngine.prototype._finalizePipelineContext = function (pipelineContext) {\r\n var context = pipelineContext.context;\r\n var vertexShader = pipelineContext.vertexShader;\r\n var fragmentShader = pipelineContext.fragmentShader;\r\n var program = pipelineContext.program;\r\n var linked = context.getProgramParameter(program, context.LINK_STATUS);\r\n if (!linked) { // Get more info\r\n // Vertex\r\n if (!this._gl.getShaderParameter(vertexShader, this._gl.COMPILE_STATUS)) {\r\n var log = this._gl.getShaderInfoLog(vertexShader);\r\n if (log) {\r\n throw new Error(\"VERTEX SHADER \" + log);\r\n }\r\n }\r\n // Fragment\r\n if (!this._gl.getShaderParameter(fragmentShader, this._gl.COMPILE_STATUS)) {\r\n var log = this._gl.getShaderInfoLog(fragmentShader);\r\n if (log) {\r\n throw new Error(\"FRAGMENT SHADER \" + log);\r\n }\r\n }\r\n var error = context.getProgramInfoLog(program);\r\n if (error) {\r\n throw new Error(error);\r\n }\r\n }\r\n if (this.validateShaderPrograms) {\r\n context.validateProgram(program);\r\n var validated = context.getProgramParameter(program, context.VALIDATE_STATUS);\r\n if (!validated) {\r\n var error = context.getProgramInfoLog(program);\r\n if (error) {\r\n throw new Error(error);\r\n }\r\n }\r\n }\r\n context.deleteShader(vertexShader);\r\n context.deleteShader(fragmentShader);\r\n pipelineContext.vertexShader = undefined;\r\n pipelineContext.fragmentShader = undefined;\r\n if (pipelineContext.onCompiled) {\r\n pipelineContext.onCompiled();\r\n pipelineContext.onCompiled = undefined;\r\n }\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._preparePipelineContext = function (pipelineContext, vertexSourceCode, fragmentSourceCode, createAsRaw, rebuildRebind, defines, transformFeedbackVaryings) {\r\n var webGLRenderingState = pipelineContext;\r\n if (createAsRaw) {\r\n webGLRenderingState.program = this.createRawShaderProgram(webGLRenderingState, vertexSourceCode, fragmentSourceCode, undefined, transformFeedbackVaryings);\r\n }\r\n else {\r\n webGLRenderingState.program = this.createShaderProgram(webGLRenderingState, vertexSourceCode, fragmentSourceCode, defines, undefined, transformFeedbackVaryings);\r\n }\r\n webGLRenderingState.program.__SPECTOR_rebuildProgram = rebuildRebind;\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._isRenderingStateCompiled = function (pipelineContext) {\r\n var webGLPipelineContext = pipelineContext;\r\n if (this._gl.getProgramParameter(webGLPipelineContext.program, this._caps.parallelShaderCompile.COMPLETION_STATUS_KHR)) {\r\n this._finalizePipelineContext(webGLPipelineContext);\r\n return true;\r\n }\r\n return false;\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._executeWhenRenderingStateIsCompiled = function (pipelineContext, action) {\r\n var webGLPipelineContext = pipelineContext;\r\n if (!webGLPipelineContext.isParallelCompiled) {\r\n action();\r\n return;\r\n }\r\n webGLPipelineContext.onCompiled = action;\r\n };\r\n /**\r\n * Gets the list of webGL uniform locations associated with a specific program based on a list of uniform names\r\n * @param pipelineContext defines the pipeline context to use\r\n * @param uniformsNames defines the list of uniform names\r\n * @returns an array of webGL uniform locations\r\n */\r\n ThinEngine.prototype.getUniforms = function (pipelineContext, uniformsNames) {\r\n var results = new Array();\r\n var webGLPipelineContext = pipelineContext;\r\n for (var index = 0; index < uniformsNames.length; index++) {\r\n results.push(this._gl.getUniformLocation(webGLPipelineContext.program, uniformsNames[index]));\r\n }\r\n return results;\r\n };\r\n /**\r\n * Gets the lsit of active attributes for a given webGL program\r\n * @param pipelineContext defines the pipeline context to use\r\n * @param attributesNames defines the list of attribute names to get\r\n * @returns an array of indices indicating the offset of each attribute\r\n */\r\n ThinEngine.prototype.getAttributes = function (pipelineContext, attributesNames) {\r\n var results = [];\r\n var webGLPipelineContext = pipelineContext;\r\n for (var index = 0; index < attributesNames.length; index++) {\r\n try {\r\n results.push(this._gl.getAttribLocation(webGLPipelineContext.program, attributesNames[index]));\r\n }\r\n catch (e) {\r\n results.push(-1);\r\n }\r\n }\r\n return results;\r\n };\r\n /**\r\n * Activates an effect, mkaing it the current one (ie. the one used for rendering)\r\n * @param effect defines the effect to activate\r\n */\r\n ThinEngine.prototype.enableEffect = function (effect) {\r\n if (!effect || effect === this._currentEffect) {\r\n return;\r\n }\r\n // Use program\r\n this.bindSamplers(effect);\r\n this._currentEffect = effect;\r\n if (effect.onBind) {\r\n effect.onBind(effect);\r\n }\r\n if (effect._onBindObservable) {\r\n effect._onBindObservable.notifyObservers(effect);\r\n }\r\n };\r\n /**\r\n * Set the value of an uniform to an array of int32\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param array defines the array of int32 to store\r\n */\r\n ThinEngine.prototype.setIntArray = function (uniform, array) {\r\n if (!uniform) {\r\n return;\r\n }\r\n this._gl.uniform1iv(uniform, array);\r\n };\r\n /**\r\n * Set the value of an uniform to an array of int32 (stored as vec2)\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param array defines the array of int32 to store\r\n */\r\n ThinEngine.prototype.setIntArray2 = function (uniform, array) {\r\n if (!uniform || array.length % 2 !== 0) {\r\n return;\r\n }\r\n this._gl.uniform2iv(uniform, array);\r\n };\r\n /**\r\n * Set the value of an uniform to an array of int32 (stored as vec3)\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param array defines the array of int32 to store\r\n */\r\n ThinEngine.prototype.setIntArray3 = function (uniform, array) {\r\n if (!uniform || array.length % 3 !== 0) {\r\n return;\r\n }\r\n this._gl.uniform3iv(uniform, array);\r\n };\r\n /**\r\n * Set the value of an uniform to an array of int32 (stored as vec4)\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param array defines the array of int32 to store\r\n */\r\n ThinEngine.prototype.setIntArray4 = function (uniform, array) {\r\n if (!uniform || array.length % 4 !== 0) {\r\n return;\r\n }\r\n this._gl.uniform4iv(uniform, array);\r\n };\r\n /**\r\n * Set the value of an uniform to an array of float32\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param array defines the array of float32 to store\r\n */\r\n ThinEngine.prototype.setFloatArray = function (uniform, array) {\r\n if (!uniform) {\r\n return;\r\n }\r\n this._gl.uniform1fv(uniform, array);\r\n };\r\n /**\r\n * Set the value of an uniform to an array of float32 (stored as vec2)\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param array defines the array of float32 to store\r\n */\r\n ThinEngine.prototype.setFloatArray2 = function (uniform, array) {\r\n if (!uniform || array.length % 2 !== 0) {\r\n return;\r\n }\r\n this._gl.uniform2fv(uniform, array);\r\n };\r\n /**\r\n * Set the value of an uniform to an array of float32 (stored as vec3)\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param array defines the array of float32 to store\r\n */\r\n ThinEngine.prototype.setFloatArray3 = function (uniform, array) {\r\n if (!uniform || array.length % 3 !== 0) {\r\n return;\r\n }\r\n this._gl.uniform3fv(uniform, array);\r\n };\r\n /**\r\n * Set the value of an uniform to an array of float32 (stored as vec4)\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param array defines the array of float32 to store\r\n */\r\n ThinEngine.prototype.setFloatArray4 = function (uniform, array) {\r\n if (!uniform || array.length % 4 !== 0) {\r\n return;\r\n }\r\n this._gl.uniform4fv(uniform, array);\r\n };\r\n /**\r\n * Set the value of an uniform to an array of number\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param array defines the array of number to store\r\n */\r\n ThinEngine.prototype.setArray = function (uniform, array) {\r\n if (!uniform) {\r\n return;\r\n }\r\n this._gl.uniform1fv(uniform, array);\r\n };\r\n /**\r\n * Set the value of an uniform to an array of number (stored as vec2)\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param array defines the array of number to store\r\n */\r\n ThinEngine.prototype.setArray2 = function (uniform, array) {\r\n if (!uniform || array.length % 2 !== 0) {\r\n return;\r\n }\r\n this._gl.uniform2fv(uniform, array);\r\n };\r\n /**\r\n * Set the value of an uniform to an array of number (stored as vec3)\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param array defines the array of number to store\r\n */\r\n ThinEngine.prototype.setArray3 = function (uniform, array) {\r\n if (!uniform || array.length % 3 !== 0) {\r\n return;\r\n }\r\n this._gl.uniform3fv(uniform, array);\r\n };\r\n /**\r\n * Set the value of an uniform to an array of number (stored as vec4)\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param array defines the array of number to store\r\n */\r\n ThinEngine.prototype.setArray4 = function (uniform, array) {\r\n if (!uniform || array.length % 4 !== 0) {\r\n return;\r\n }\r\n this._gl.uniform4fv(uniform, array);\r\n };\r\n /**\r\n * Set the value of an uniform to an array of float32 (stored as matrices)\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param matrices defines the array of float32 to store\r\n */\r\n ThinEngine.prototype.setMatrices = function (uniform, matrices) {\r\n if (!uniform) {\r\n return;\r\n }\r\n this._gl.uniformMatrix4fv(uniform, false, matrices);\r\n };\r\n /**\r\n * Set the value of an uniform to a matrix (3x3)\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param matrix defines the Float32Array representing the 3x3 matrix to store\r\n */\r\n ThinEngine.prototype.setMatrix3x3 = function (uniform, matrix) {\r\n if (!uniform) {\r\n return;\r\n }\r\n this._gl.uniformMatrix3fv(uniform, false, matrix);\r\n };\r\n /**\r\n * Set the value of an uniform to a matrix (2x2)\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param matrix defines the Float32Array representing the 2x2 matrix to store\r\n */\r\n ThinEngine.prototype.setMatrix2x2 = function (uniform, matrix) {\r\n if (!uniform) {\r\n return;\r\n }\r\n this._gl.uniformMatrix2fv(uniform, false, matrix);\r\n };\r\n /**\r\n * Set the value of an uniform to a number (int)\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param value defines the int number to store\r\n */\r\n ThinEngine.prototype.setInt = function (uniform, value) {\r\n if (!uniform) {\r\n return;\r\n }\r\n this._gl.uniform1i(uniform, value);\r\n };\r\n /**\r\n * Set the value of an uniform to a number (float)\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param value defines the float number to store\r\n */\r\n ThinEngine.prototype.setFloat = function (uniform, value) {\r\n if (!uniform) {\r\n return;\r\n }\r\n this._gl.uniform1f(uniform, value);\r\n };\r\n /**\r\n * Set the value of an uniform to a vec2\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param x defines the 1st component of the value\r\n * @param y defines the 2nd component of the value\r\n */\r\n ThinEngine.prototype.setFloat2 = function (uniform, x, y) {\r\n if (!uniform) {\r\n return;\r\n }\r\n this._gl.uniform2f(uniform, x, y);\r\n };\r\n /**\r\n * Set the value of an uniform to a vec3\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param x defines the 1st component of the value\r\n * @param y defines the 2nd component of the value\r\n * @param z defines the 3rd component of the value\r\n */\r\n ThinEngine.prototype.setFloat3 = function (uniform, x, y, z) {\r\n if (!uniform) {\r\n return;\r\n }\r\n this._gl.uniform3f(uniform, x, y, z);\r\n };\r\n /**\r\n * Set the value of an uniform to a boolean\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param bool defines the boolean to store\r\n */\r\n ThinEngine.prototype.setBool = function (uniform, bool) {\r\n if (!uniform) {\r\n return;\r\n }\r\n this._gl.uniform1i(uniform, bool);\r\n };\r\n /**\r\n * Set the value of an uniform to a vec4\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param x defines the 1st component of the value\r\n * @param y defines the 2nd component of the value\r\n * @param z defines the 3rd component of the value\r\n * @param w defines the 4th component of the value\r\n */\r\n ThinEngine.prototype.setFloat4 = function (uniform, x, y, z, w) {\r\n if (!uniform) {\r\n return;\r\n }\r\n this._gl.uniform4f(uniform, x, y, z, w);\r\n };\r\n /**\r\n * Sets a Color4 on a uniform variable\r\n * @param uniform defines the uniform location\r\n * @param color4 defines the value to be set\r\n */\r\n ThinEngine.prototype.setDirectColor4 = function (uniform, color4) {\r\n if (!uniform) {\r\n return;\r\n }\r\n this._gl.uniform4f(uniform, color4.r, color4.g, color4.b, color4.a);\r\n };\r\n Object.defineProperty(ThinEngine.prototype, \"depthCullingState\", {\r\n // States\r\n /**\r\n * Gets the depth culling state manager\r\n */\r\n get: function () {\r\n return this._depthCullingState;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine.prototype, \"alphaState\", {\r\n /**\r\n * Gets the alpha state manager\r\n */\r\n get: function () {\r\n return this._alphaState;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine.prototype, \"stencilState\", {\r\n /**\r\n * Gets the stencil state manager\r\n */\r\n get: function () {\r\n return this._stencilState;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n // Textures\r\n /**\r\n * Clears the list of texture accessible through engine.\r\n * This can help preventing texture load conflict due to name collision.\r\n */\r\n ThinEngine.prototype.clearInternalTexturesCache = function () {\r\n this._internalTexturesCache = [];\r\n };\r\n /**\r\n * Force the entire cache to be cleared\r\n * You should not have to use this function unless your engine needs to share the webGL context with another engine\r\n * @param bruteForce defines a boolean to force clearing ALL caches (including stencil, detoh and alpha states)\r\n */\r\n ThinEngine.prototype.wipeCaches = function (bruteForce) {\r\n if (this.preventCacheWipeBetweenFrames && !bruteForce) {\r\n return;\r\n }\r\n this._currentEffect = null;\r\n this._viewportCached.x = 0;\r\n this._viewportCached.y = 0;\r\n this._viewportCached.z = 0;\r\n this._viewportCached.w = 0;\r\n if (bruteForce) {\r\n this.resetTextureCache();\r\n this._currentProgram = null;\r\n this._stencilState.reset();\r\n this._depthCullingState.reset();\r\n this._depthCullingState.depthFunc = this._gl.LEQUAL;\r\n this._alphaState.reset();\r\n this._unpackFlipYCached = null;\r\n }\r\n this._resetVertexBufferBinding();\r\n this._cachedIndexBuffer = null;\r\n this._cachedEffectForVertexBuffers = null;\r\n this._unbindVertexArrayObject();\r\n this.bindIndexBuffer(null);\r\n };\r\n /**\r\n * Set the compressed texture format to use, based on the formats you have, and the formats\r\n * supported by the hardware / browser.\r\n *\r\n * Khronos Texture Container (.ktx) files are used to support this. This format has the\r\n * advantage of being specifically designed for OpenGL. Header elements directly correspond\r\n * to API arguments needed to compressed textures. This puts the burden on the container\r\n * generator to house the arcane code for determining these for current & future formats.\r\n *\r\n * for description see https://www.khronos.org/opengles/sdk/tools/KTX/\r\n * for file layout see https://www.khronos.org/opengles/sdk/tools/KTX/file_format_spec/\r\n *\r\n * Note: The result of this call is not taken into account when a texture is base64.\r\n *\r\n * @param formatsAvailable defines the list of those format families you have created\r\n * on your server. Syntax: '-' + format family + '.ktx'. (Case and order do not matter.)\r\n *\r\n * Current families are astc, dxt, pvrtc, etc2, & etc1.\r\n * @returns The extension selected.\r\n */\r\n ThinEngine.prototype.setTextureFormatToUse = function (formatsAvailable) {\r\n for (var i = 0, len1 = this.texturesSupported.length; i < len1; i++) {\r\n for (var j = 0, len2 = formatsAvailable.length; j < len2; j++) {\r\n if (this._texturesSupported[i] === formatsAvailable[j].toLowerCase()) {\r\n return this._textureFormatInUse = this._texturesSupported[i];\r\n }\r\n }\r\n }\r\n // actively set format to nothing, to allow this to be called more than once\r\n // and possibly fail the 2nd time\r\n this._textureFormatInUse = null;\r\n return null;\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._getSamplingParameters = function (samplingMode, generateMipMaps) {\r\n var gl = this._gl;\r\n var magFilter = gl.NEAREST;\r\n var minFilter = gl.NEAREST;\r\n switch (samplingMode) {\r\n case Constants.TEXTURE_BILINEAR_SAMPLINGMODE:\r\n magFilter = gl.LINEAR;\r\n if (generateMipMaps) {\r\n minFilter = gl.LINEAR_MIPMAP_NEAREST;\r\n }\r\n else {\r\n minFilter = gl.LINEAR;\r\n }\r\n break;\r\n case Constants.TEXTURE_TRILINEAR_SAMPLINGMODE:\r\n magFilter = gl.LINEAR;\r\n if (generateMipMaps) {\r\n minFilter = gl.LINEAR_MIPMAP_LINEAR;\r\n }\r\n else {\r\n minFilter = gl.LINEAR;\r\n }\r\n break;\r\n case Constants.TEXTURE_NEAREST_SAMPLINGMODE:\r\n magFilter = gl.NEAREST;\r\n if (generateMipMaps) {\r\n minFilter = gl.NEAREST_MIPMAP_LINEAR;\r\n }\r\n else {\r\n minFilter = gl.NEAREST;\r\n }\r\n break;\r\n case Constants.TEXTURE_NEAREST_NEAREST_MIPNEAREST:\r\n magFilter = gl.NEAREST;\r\n if (generateMipMaps) {\r\n minFilter = gl.NEAREST_MIPMAP_NEAREST;\r\n }\r\n else {\r\n minFilter = gl.NEAREST;\r\n }\r\n break;\r\n case Constants.TEXTURE_NEAREST_LINEAR_MIPNEAREST:\r\n magFilter = gl.NEAREST;\r\n if (generateMipMaps) {\r\n minFilter = gl.LINEAR_MIPMAP_NEAREST;\r\n }\r\n else {\r\n minFilter = gl.LINEAR;\r\n }\r\n break;\r\n case Constants.TEXTURE_NEAREST_LINEAR_MIPLINEAR:\r\n magFilter = gl.NEAREST;\r\n if (generateMipMaps) {\r\n minFilter = gl.LINEAR_MIPMAP_LINEAR;\r\n }\r\n else {\r\n minFilter = gl.LINEAR;\r\n }\r\n break;\r\n case Constants.TEXTURE_NEAREST_LINEAR:\r\n magFilter = gl.NEAREST;\r\n minFilter = gl.LINEAR;\r\n break;\r\n case Constants.TEXTURE_NEAREST_NEAREST:\r\n magFilter = gl.NEAREST;\r\n minFilter = gl.NEAREST;\r\n break;\r\n case Constants.TEXTURE_LINEAR_NEAREST_MIPNEAREST:\r\n magFilter = gl.LINEAR;\r\n if (generateMipMaps) {\r\n minFilter = gl.NEAREST_MIPMAP_NEAREST;\r\n }\r\n else {\r\n minFilter = gl.NEAREST;\r\n }\r\n break;\r\n case Constants.TEXTURE_LINEAR_NEAREST_MIPLINEAR:\r\n magFilter = gl.LINEAR;\r\n if (generateMipMaps) {\r\n minFilter = gl.NEAREST_MIPMAP_LINEAR;\r\n }\r\n else {\r\n minFilter = gl.NEAREST;\r\n }\r\n break;\r\n case Constants.TEXTURE_LINEAR_LINEAR:\r\n magFilter = gl.LINEAR;\r\n minFilter = gl.LINEAR;\r\n break;\r\n case Constants.TEXTURE_LINEAR_NEAREST:\r\n magFilter = gl.LINEAR;\r\n minFilter = gl.NEAREST;\r\n break;\r\n }\r\n return {\r\n min: minFilter,\r\n mag: magFilter\r\n };\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._createTexture = function () {\r\n var texture = this._gl.createTexture();\r\n if (!texture) {\r\n throw new Error(\"Unable to create texture\");\r\n }\r\n return texture;\r\n };\r\n /**\r\n * Usually called from Texture.ts.\r\n * Passed information to create a WebGLTexture\r\n * @param urlArg defines a value which contains one of the following:\r\n * * A conventional http URL, e.g. 'http://...' or 'file://...'\r\n * * A base64 string of in-line texture data, e.g. 'data:image/jpg;base64,/...'\r\n * * An indicator that data being passed using the buffer parameter, e.g. 'data:mytexture.jpg'\r\n * @param noMipmap defines a boolean indicating that no mipmaps shall be generated. Ignored for compressed textures. They must be in the file\r\n * @param invertY when true, image is flipped when loaded. You probably want true. Certain compressed textures may invert this if their default is inverted (eg. ktx)\r\n * @param scene needed for loading to the correct scene\r\n * @param samplingMode mode with should be used sample / access the texture (Default: Texture.TRILINEAR_SAMPLINGMODE)\r\n * @param onLoad optional callback to be called upon successful completion\r\n * @param onError optional callback to be called upon failure\r\n * @param buffer a source of a file previously fetched as either a base64 string, an ArrayBuffer (compressed or image format), HTMLImageElement (image format), or a Blob\r\n * @param fallback an internal argument in case the function must be called again, due to etc1 not having alpha capabilities\r\n * @param format internal format. Default: RGB when extension is '.jpg' else RGBA. Ignored for compressed textures\r\n * @param forcedExtension defines the extension to use to pick the right loader\r\n * @param excludeLoaders array of texture loaders that should be excluded when picking a loader for the texture (default: empty array)\r\n * @returns a InternalTexture for assignment back into BABYLON.Texture\r\n */\r\n ThinEngine.prototype.createTexture = function (urlArg, noMipmap, invertY, scene, samplingMode, onLoad, onError, buffer, fallback, format, forcedExtension, excludeLoaders) {\r\n var _this = this;\r\n if (samplingMode === void 0) { samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE; }\r\n if (onLoad === void 0) { onLoad = null; }\r\n if (onError === void 0) { onError = null; }\r\n if (buffer === void 0) { buffer = null; }\r\n if (fallback === void 0) { fallback = null; }\r\n if (format === void 0) { format = null; }\r\n if (forcedExtension === void 0) { forcedExtension = null; }\r\n if (excludeLoaders === void 0) { excludeLoaders = []; }\r\n var url = String(urlArg); // assign a new string, so that the original is still available in case of fallback\r\n var fromData = url.substr(0, 5) === \"data:\";\r\n var fromBlob = url.substr(0, 5) === \"blob:\";\r\n var isBase64 = fromData && url.indexOf(\";base64,\") !== -1;\r\n var texture = fallback ? fallback : new InternalTexture(this, InternalTexture.DATASOURCE_URL);\r\n // establish the file extension, if possible\r\n var lastDot = url.lastIndexOf('.');\r\n var extension = forcedExtension ? forcedExtension : (lastDot > -1 ? url.substring(lastDot).toLowerCase() : \"\");\r\n var loader = null;\r\n for (var _i = 0, _a = ThinEngine._TextureLoaders; _i < _a.length; _i++) {\r\n var availableLoader = _a[_i];\r\n if (excludeLoaders.indexOf(availableLoader) === -1 && availableLoader.canLoad(extension, this._textureFormatInUse, fallback, isBase64, buffer ? true : false)) {\r\n loader = availableLoader;\r\n break;\r\n }\r\n }\r\n if (loader) {\r\n url = loader.transformUrl(url, this._textureFormatInUse);\r\n }\r\n if (scene) {\r\n scene._addPendingData(texture);\r\n }\r\n texture.url = url;\r\n texture.generateMipMaps = !noMipmap;\r\n texture.samplingMode = samplingMode;\r\n texture.invertY = invertY;\r\n if (!this._doNotHandleContextLost) {\r\n // Keep a link to the buffer only if we plan to handle context lost\r\n texture._buffer = buffer;\r\n }\r\n var onLoadObserver = null;\r\n if (onLoad && !fallback) {\r\n onLoadObserver = texture.onLoadedObservable.add(onLoad);\r\n }\r\n if (!fallback) {\r\n this._internalTexturesCache.push(texture);\r\n }\r\n var onInternalError = function (message, exception) {\r\n if (scene) {\r\n scene._removePendingData(texture);\r\n }\r\n var customFallback = false;\r\n if (loader) {\r\n var fallbackUrl = loader.getFallbackTextureUrl(url, _this._textureFormatInUse);\r\n if (fallbackUrl) {\r\n // Add Back\r\n customFallback = true;\r\n excludeLoaders.push(loader);\r\n _this.createTexture(urlArg, noMipmap, texture.invertY, scene, samplingMode, null, onError, buffer, texture, undefined, undefined, excludeLoaders);\r\n return;\r\n }\r\n }\r\n if (!customFallback) {\r\n if (onLoadObserver) {\r\n texture.onLoadedObservable.remove(onLoadObserver);\r\n }\r\n if (EngineStore.UseFallbackTexture) {\r\n _this.createTexture(EngineStore.FallbackTexture, noMipmap, texture.invertY, scene, samplingMode, null, onError, buffer, texture);\r\n return;\r\n }\r\n }\r\n if (onError) {\r\n onError(message || \"Unknown error\", exception);\r\n }\r\n };\r\n // processing for non-image formats\r\n if (loader) {\r\n var callback = function (data) {\r\n loader.loadData(data, texture, function (width, height, loadMipmap, isCompressed, done, loadFailed) {\r\n if (loadFailed) {\r\n onInternalError(\"TextureLoader failed to load data\");\r\n }\r\n else {\r\n _this._prepareWebGLTexture(texture, scene, width, height, texture.invertY, !loadMipmap, isCompressed, function () {\r\n done();\r\n return false;\r\n }, samplingMode);\r\n }\r\n });\r\n };\r\n if (!buffer) {\r\n this._loadFile(url, callback, undefined, scene ? scene.offlineProvider : undefined, true, function (request, exception) {\r\n onInternalError(\"Unable to load \" + (request ? request.responseURL : url, exception));\r\n });\r\n }\r\n else {\r\n //callback(buffer as ArrayBuffer);\r\n if (buffer instanceof ArrayBuffer) {\r\n callback(buffer);\r\n }\r\n else {\r\n if (onError) {\r\n onError(\"Unable to load: only ArrayBuffer supported here\", null);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n var onload = function (img) {\r\n if (fromBlob && !_this._doNotHandleContextLost) {\r\n // We need to store the image if we need to rebuild the texture\r\n // in case of a webgl context lost\r\n texture._buffer = img;\r\n }\r\n _this._prepareWebGLTexture(texture, scene, img.width, img.height, texture.invertY, noMipmap, false, function (potWidth, potHeight, continuationCallback) {\r\n var gl = _this._gl;\r\n var isPot = (img.width === potWidth && img.height === potHeight);\r\n var internalFormat = format ? _this._getInternalFormat(format) : ((extension === \".jpg\") ? gl.RGB : gl.RGBA);\r\n if (isPot) {\r\n gl.texImage2D(gl.TEXTURE_2D, 0, internalFormat, internalFormat, gl.UNSIGNED_BYTE, img);\r\n return false;\r\n }\r\n var maxTextureSize = _this._caps.maxTextureSize;\r\n if (img.width > maxTextureSize || img.height > maxTextureSize || !_this._supportsHardwareTextureRescaling) {\r\n _this._prepareWorkingCanvas();\r\n if (!_this._workingCanvas || !_this._workingContext) {\r\n return false;\r\n }\r\n _this._workingCanvas.width = potWidth;\r\n _this._workingCanvas.height = potHeight;\r\n _this._workingContext.drawImage(img, 0, 0, img.width, img.height, 0, 0, potWidth, potHeight);\r\n gl.texImage2D(gl.TEXTURE_2D, 0, internalFormat, internalFormat, gl.UNSIGNED_BYTE, _this._workingCanvas);\r\n texture.width = potWidth;\r\n texture.height = potHeight;\r\n return false;\r\n }\r\n else {\r\n // Using shaders when possible to rescale because canvas.drawImage is lossy\r\n var source_1 = new InternalTexture(_this, InternalTexture.DATASOURCE_TEMP);\r\n _this._bindTextureDirectly(gl.TEXTURE_2D, source_1, true);\r\n gl.texImage2D(gl.TEXTURE_2D, 0, internalFormat, internalFormat, gl.UNSIGNED_BYTE, img);\r\n _this._rescaleTexture(source_1, texture, scene, internalFormat, function () {\r\n _this._releaseTexture(source_1);\r\n _this._bindTextureDirectly(gl.TEXTURE_2D, texture, true);\r\n continuationCallback();\r\n });\r\n }\r\n return true;\r\n }, samplingMode);\r\n };\r\n if (!fromData || isBase64) {\r\n if (buffer instanceof HTMLImageElement) {\r\n onload(buffer);\r\n }\r\n else {\r\n FileTools.LoadImage(url, onload, onInternalError, scene ? scene.offlineProvider : null);\r\n }\r\n }\r\n else if (typeof buffer === \"string\" || buffer instanceof ArrayBuffer || ArrayBuffer.isView(buffer) || buffer instanceof Blob) {\r\n FileTools.LoadImage(buffer, onload, onInternalError, scene ? scene.offlineProvider : null);\r\n }\r\n else {\r\n onload(buffer);\r\n }\r\n }\r\n return texture;\r\n };\r\n /**\r\n * @hidden\r\n */\r\n ThinEngine.prototype._rescaleTexture = function (source, destination, scene, internalFormat, onComplete) {\r\n };\r\n /**\r\n * Creates a raw texture\r\n * @param data defines the data to store in the texture\r\n * @param width defines the width of the texture\r\n * @param height defines the height of the texture\r\n * @param format defines the format of the data\r\n * @param generateMipMaps defines if the engine should generate the mip levels\r\n * @param invertY defines if data must be stored with Y axis inverted\r\n * @param samplingMode defines the required sampling mode (Texture.NEAREST_SAMPLINGMODE by default)\r\n * @param compression defines the compression used (null by default)\r\n * @param type defines the type fo the data (Engine.TEXTURETYPE_UNSIGNED_INT by default)\r\n * @returns the raw texture inside an InternalTexture\r\n */\r\n ThinEngine.prototype.createRawTexture = function (data, width, height, format, generateMipMaps, invertY, samplingMode, compression, type) {\r\n if (compression === void 0) { compression = null; }\r\n if (type === void 0) { type = Constants.TEXTURETYPE_UNSIGNED_INT; }\r\n throw _DevTools.WarnImport(\"Engine.RawTexture\");\r\n };\r\n /**\r\n * Creates a new raw cube texture\r\n * @param data defines the array of data to use to create each face\r\n * @param size defines the size of the textures\r\n * @param format defines the format of the data\r\n * @param type defines the type of the data (like Engine.TEXTURETYPE_UNSIGNED_INT)\r\n * @param generateMipMaps defines if the engine should generate the mip levels\r\n * @param invertY defines if data must be stored with Y axis inverted\r\n * @param samplingMode defines the required sampling mode (like Texture.NEAREST_SAMPLINGMODE)\r\n * @param compression defines the compression used (null by default)\r\n * @returns the cube texture as an InternalTexture\r\n */\r\n ThinEngine.prototype.createRawCubeTexture = function (data, size, format, type, generateMipMaps, invertY, samplingMode, compression) {\r\n if (compression === void 0) { compression = null; }\r\n throw _DevTools.WarnImport(\"Engine.RawTexture\");\r\n };\r\n /**\r\n * Creates a new raw 3D texture\r\n * @param data defines the data used to create the texture\r\n * @param width defines the width of the texture\r\n * @param height defines the height of the texture\r\n * @param depth defines the depth of the texture\r\n * @param format defines the format of the texture\r\n * @param generateMipMaps defines if the engine must generate mip levels\r\n * @param invertY defines if data must be stored with Y axis inverted\r\n * @param samplingMode defines the required sampling mode (like Texture.NEAREST_SAMPLINGMODE)\r\n * @param compression defines the compressed used (can be null)\r\n * @param textureType defines the compressed used (can be null)\r\n * @returns a new raw 3D texture (stored in an InternalTexture)\r\n */\r\n ThinEngine.prototype.createRawTexture3D = function (data, width, height, depth, format, generateMipMaps, invertY, samplingMode, compression, textureType) {\r\n if (compression === void 0) { compression = null; }\r\n if (textureType === void 0) { textureType = Constants.TEXTURETYPE_UNSIGNED_INT; }\r\n throw _DevTools.WarnImport(\"Engine.RawTexture\");\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._unpackFlipY = function (value) {\r\n if (this._unpackFlipYCached !== value) {\r\n this._gl.pixelStorei(this._gl.UNPACK_FLIP_Y_WEBGL, value ? 1 : 0);\r\n if (this.enableUnpackFlipYCached) {\r\n this._unpackFlipYCached = value;\r\n }\r\n }\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._getUnpackAlignement = function () {\r\n return this._gl.getParameter(this._gl.UNPACK_ALIGNMENT);\r\n };\r\n /**\r\n * Update the sampling mode of a given texture\r\n * @param samplingMode defines the required sampling mode\r\n * @param texture defines the texture to update\r\n */\r\n ThinEngine.prototype.updateTextureSamplingMode = function (samplingMode, texture) {\r\n var filters = this._getSamplingParameters(samplingMode, texture.generateMipMaps);\r\n if (texture.isCube) {\r\n this._setTextureParameterInteger(this._gl.TEXTURE_CUBE_MAP, this._gl.TEXTURE_MAG_FILTER, filters.mag, texture);\r\n this._setTextureParameterInteger(this._gl.TEXTURE_CUBE_MAP, this._gl.TEXTURE_MIN_FILTER, filters.min);\r\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null);\r\n }\r\n else if (texture.is3D) {\r\n this._setTextureParameterInteger(this._gl.TEXTURE_3D, this._gl.TEXTURE_MAG_FILTER, filters.mag, texture);\r\n this._setTextureParameterInteger(this._gl.TEXTURE_3D, this._gl.TEXTURE_MIN_FILTER, filters.min);\r\n this._bindTextureDirectly(this._gl.TEXTURE_3D, null);\r\n }\r\n else {\r\n this._setTextureParameterInteger(this._gl.TEXTURE_2D, this._gl.TEXTURE_MAG_FILTER, filters.mag, texture);\r\n this._setTextureParameterInteger(this._gl.TEXTURE_2D, this._gl.TEXTURE_MIN_FILTER, filters.min);\r\n this._bindTextureDirectly(this._gl.TEXTURE_2D, null);\r\n }\r\n texture.samplingMode = samplingMode;\r\n };\r\n /**\r\n * Updates a depth texture Comparison Mode and Function.\r\n * If the comparison Function is equal to 0, the mode will be set to none.\r\n * Otherwise, this only works in webgl 2 and requires a shadow sampler in the shader.\r\n * @param texture The texture to set the comparison function for\r\n * @param comparisonFunction The comparison function to set, 0 if no comparison required\r\n */\r\n ThinEngine.prototype.updateTextureComparisonFunction = function (texture, comparisonFunction) {\r\n if (this.webGLVersion === 1) {\r\n Logger.Error(\"WebGL 1 does not support texture comparison.\");\r\n return;\r\n }\r\n var gl = this._gl;\r\n if (texture.isCube) {\r\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, texture, true);\r\n if (comparisonFunction === 0) {\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_COMPARE_FUNC, Constants.LEQUAL);\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_COMPARE_MODE, gl.NONE);\r\n }\r\n else {\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_COMPARE_FUNC, comparisonFunction);\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_COMPARE_MODE, gl.COMPARE_REF_TO_TEXTURE);\r\n }\r\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null);\r\n }\r\n else {\r\n this._bindTextureDirectly(this._gl.TEXTURE_2D, texture, true);\r\n if (comparisonFunction === 0) {\r\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_COMPARE_FUNC, Constants.LEQUAL);\r\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_COMPARE_MODE, gl.NONE);\r\n }\r\n else {\r\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_COMPARE_FUNC, comparisonFunction);\r\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_COMPARE_MODE, gl.COMPARE_REF_TO_TEXTURE);\r\n }\r\n this._bindTextureDirectly(this._gl.TEXTURE_2D, null);\r\n }\r\n texture._comparisonFunction = comparisonFunction;\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._setupDepthStencilTexture = function (internalTexture, size, generateStencil, bilinearFiltering, comparisonFunction) {\r\n var width = size.width || size;\r\n var height = size.height || size;\r\n internalTexture.baseWidth = width;\r\n internalTexture.baseHeight = height;\r\n internalTexture.width = width;\r\n internalTexture.height = height;\r\n internalTexture.isReady = true;\r\n internalTexture.samples = 1;\r\n internalTexture.generateMipMaps = false;\r\n internalTexture._generateDepthBuffer = true;\r\n internalTexture._generateStencilBuffer = generateStencil;\r\n internalTexture.samplingMode = bilinearFiltering ? Constants.TEXTURE_BILINEAR_SAMPLINGMODE : Constants.TEXTURE_NEAREST_SAMPLINGMODE;\r\n internalTexture.type = Constants.TEXTURETYPE_UNSIGNED_INT;\r\n internalTexture._comparisonFunction = comparisonFunction;\r\n var gl = this._gl;\r\n var target = internalTexture.isCube ? gl.TEXTURE_CUBE_MAP : gl.TEXTURE_2D;\r\n var samplingParameters = this._getSamplingParameters(internalTexture.samplingMode, false);\r\n gl.texParameteri(target, gl.TEXTURE_MAG_FILTER, samplingParameters.mag);\r\n gl.texParameteri(target, gl.TEXTURE_MIN_FILTER, samplingParameters.min);\r\n gl.texParameteri(target, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\r\n gl.texParameteri(target, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\r\n if (comparisonFunction === 0) {\r\n gl.texParameteri(target, gl.TEXTURE_COMPARE_FUNC, Constants.LEQUAL);\r\n gl.texParameteri(target, gl.TEXTURE_COMPARE_MODE, gl.NONE);\r\n }\r\n else {\r\n gl.texParameteri(target, gl.TEXTURE_COMPARE_FUNC, comparisonFunction);\r\n gl.texParameteri(target, gl.TEXTURE_COMPARE_MODE, gl.COMPARE_REF_TO_TEXTURE);\r\n }\r\n };\r\n /**\r\n * Creates a depth stencil texture.\r\n * This is only available in WebGL 2 or with the depth texture extension available.\r\n * @param size The size of face edge in the texture.\r\n * @param options The options defining the texture.\r\n * @returns The texture\r\n */\r\n ThinEngine.prototype.createDepthStencilTexture = function (size, options) {\r\n if (options.isCube) {\r\n var width = size.width || size;\r\n return this._createDepthStencilCubeTexture(width, options);\r\n }\r\n else {\r\n return this._createDepthStencilTexture(size, options);\r\n }\r\n };\r\n /**\r\n * Creates a depth stencil texture.\r\n * This is only available in WebGL 2 or with the depth texture extension available.\r\n * @param size The size of face edge in the texture.\r\n * @param options The options defining the texture.\r\n * @returns The texture\r\n */\r\n ThinEngine.prototype._createDepthStencilTexture = function (size, options) {\r\n var internalTexture = new InternalTexture(this, InternalTexture.DATASOURCE_DEPTHTEXTURE);\r\n if (!this._caps.depthTextureExtension) {\r\n Logger.Error(\"Depth texture is not supported by your browser or hardware.\");\r\n return internalTexture;\r\n }\r\n var internalOptions = tslib_1.__assign({ bilinearFiltering: false, comparisonFunction: 0, generateStencil: false }, options);\r\n var gl = this._gl;\r\n this._bindTextureDirectly(gl.TEXTURE_2D, internalTexture, true);\r\n this._setupDepthStencilTexture(internalTexture, size, internalOptions.generateStencil, internalOptions.bilinearFiltering, internalOptions.comparisonFunction);\r\n if (this.webGLVersion > 1) {\r\n if (internalOptions.generateStencil) {\r\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.DEPTH24_STENCIL8, internalTexture.width, internalTexture.height, 0, gl.DEPTH_STENCIL, gl.UNSIGNED_INT_24_8, null);\r\n }\r\n else {\r\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.DEPTH_COMPONENT24, internalTexture.width, internalTexture.height, 0, gl.DEPTH_COMPONENT, gl.UNSIGNED_INT, null);\r\n }\r\n }\r\n else {\r\n if (internalOptions.generateStencil) {\r\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.DEPTH_STENCIL, internalTexture.width, internalTexture.height, 0, gl.DEPTH_STENCIL, gl.UNSIGNED_INT_24_8, null);\r\n }\r\n else {\r\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.DEPTH_COMPONENT, internalTexture.width, internalTexture.height, 0, gl.DEPTH_COMPONENT, gl.UNSIGNED_INT, null);\r\n }\r\n }\r\n this._bindTextureDirectly(gl.TEXTURE_2D, null);\r\n return internalTexture;\r\n };\r\n /**\r\n * Sets the frame buffer Depth / Stencil attachement of the render target to the defined depth stencil texture.\r\n * @param renderTarget The render target to set the frame buffer for\r\n */\r\n ThinEngine.prototype.setFrameBufferDepthStencilTexture = function (renderTarget) {\r\n // Create the framebuffer\r\n var internalTexture = renderTarget.getInternalTexture();\r\n if (!internalTexture || !internalTexture._framebuffer || !renderTarget.depthStencilTexture) {\r\n return;\r\n }\r\n var gl = this._gl;\r\n var depthStencilTexture = renderTarget.depthStencilTexture;\r\n this._bindUnboundFramebuffer(internalTexture._framebuffer);\r\n if (depthStencilTexture.isCube) {\r\n if (depthStencilTexture._generateStencilBuffer) {\r\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.TEXTURE_CUBE_MAP_POSITIVE_X, depthStencilTexture._webGLTexture, 0);\r\n }\r\n else {\r\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.TEXTURE_CUBE_MAP_POSITIVE_X, depthStencilTexture._webGLTexture, 0);\r\n }\r\n }\r\n else {\r\n if (depthStencilTexture._generateStencilBuffer) {\r\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.TEXTURE_2D, depthStencilTexture._webGLTexture, 0);\r\n }\r\n else {\r\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.TEXTURE_2D, depthStencilTexture._webGLTexture, 0);\r\n }\r\n }\r\n this._bindUnboundFramebuffer(null);\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._setupFramebufferDepthAttachments = function (generateStencilBuffer, generateDepthBuffer, width, height, samples) {\r\n if (samples === void 0) { samples = 1; }\r\n var depthStencilBuffer = null;\r\n var gl = this._gl;\r\n // Create the depth/stencil buffer\r\n if (generateStencilBuffer) {\r\n depthStencilBuffer = gl.createRenderbuffer();\r\n gl.bindRenderbuffer(gl.RENDERBUFFER, depthStencilBuffer);\r\n if (samples > 1) {\r\n gl.renderbufferStorageMultisample(gl.RENDERBUFFER, samples, gl.DEPTH24_STENCIL8, width, height);\r\n }\r\n else {\r\n gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_STENCIL, width, height);\r\n }\r\n gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.RENDERBUFFER, depthStencilBuffer);\r\n }\r\n else if (generateDepthBuffer) {\r\n depthStencilBuffer = gl.createRenderbuffer();\r\n gl.bindRenderbuffer(gl.RENDERBUFFER, depthStencilBuffer);\r\n if (samples > 1) {\r\n gl.renderbufferStorageMultisample(gl.RENDERBUFFER, samples, gl.DEPTH_COMPONENT16, width, height);\r\n }\r\n else {\r\n gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_COMPONENT16, width, height);\r\n }\r\n gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, depthStencilBuffer);\r\n }\r\n return depthStencilBuffer;\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._uploadCompressedDataToTextureDirectly = function (texture, internalFormat, width, height, data, faceIndex, lod) {\r\n if (faceIndex === void 0) { faceIndex = 0; }\r\n if (lod === void 0) { lod = 0; }\r\n var gl = this._gl;\r\n var target = gl.TEXTURE_2D;\r\n if (texture.isCube) {\r\n target = gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex;\r\n }\r\n this._gl.compressedTexImage2D(target, lod, internalFormat, width, height, 0, data);\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._uploadDataToTextureDirectly = function (texture, imageData, faceIndex, lod, babylonInternalFormat, useTextureWidthAndHeight) {\r\n if (faceIndex === void 0) { faceIndex = 0; }\r\n if (lod === void 0) { lod = 0; }\r\n if (useTextureWidthAndHeight === void 0) { useTextureWidthAndHeight = false; }\r\n var gl = this._gl;\r\n var textureType = this._getWebGLTextureType(texture.type);\r\n var format = this._getInternalFormat(texture.format);\r\n var internalFormat = babylonInternalFormat === undefined ? this._getRGBABufferInternalSizedFormat(texture.type, format) : this._getInternalFormat(babylonInternalFormat);\r\n this._unpackFlipY(texture.invertY);\r\n var target = gl.TEXTURE_2D;\r\n if (texture.isCube) {\r\n target = gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex;\r\n }\r\n var lodMaxWidth = Math.round(Math.log(texture.width) * Math.LOG2E);\r\n var lodMaxHeight = Math.round(Math.log(texture.height) * Math.LOG2E);\r\n var width = useTextureWidthAndHeight ? texture.width : Math.pow(2, Math.max(lodMaxWidth - lod, 0));\r\n var height = useTextureWidthAndHeight ? texture.height : Math.pow(2, Math.max(lodMaxHeight - lod, 0));\r\n gl.texImage2D(target, lod, internalFormat, width, height, 0, format, textureType, imageData);\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._uploadArrayBufferViewToTexture = function (texture, imageData, faceIndex, lod) {\r\n if (faceIndex === void 0) { faceIndex = 0; }\r\n if (lod === void 0) { lod = 0; }\r\n var gl = this._gl;\r\n var bindTarget = texture.isCube ? gl.TEXTURE_CUBE_MAP : gl.TEXTURE_2D;\r\n this._bindTextureDirectly(bindTarget, texture, true);\r\n this._uploadDataToTextureDirectly(texture, imageData, faceIndex, lod);\r\n this._bindTextureDirectly(bindTarget, null, true);\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._uploadImageToTexture = function (texture, image, faceIndex, lod) {\r\n if (faceIndex === void 0) { faceIndex = 0; }\r\n if (lod === void 0) { lod = 0; }\r\n var gl = this._gl;\r\n var textureType = this._getWebGLTextureType(texture.type);\r\n var format = this._getInternalFormat(texture.format);\r\n var internalFormat = this._getRGBABufferInternalSizedFormat(texture.type, format);\r\n var bindTarget = texture.isCube ? gl.TEXTURE_CUBE_MAP : gl.TEXTURE_2D;\r\n this._bindTextureDirectly(bindTarget, texture, true);\r\n this._unpackFlipY(texture.invertY);\r\n var target = gl.TEXTURE_2D;\r\n if (texture.isCube) {\r\n target = gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex;\r\n }\r\n gl.texImage2D(target, lod, internalFormat, format, textureType, image);\r\n this._bindTextureDirectly(bindTarget, null, true);\r\n };\r\n /**\r\n * @hidden\r\n */\r\n ThinEngine.prototype._setCubeMapTextureParams = function (loadMipmap) {\r\n var gl = this._gl;\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MIN_FILTER, loadMipmap ? gl.LINEAR_MIPMAP_LINEAR : gl.LINEAR);\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\r\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);\r\n };\r\n ThinEngine.prototype._prepareWebGLTextureContinuation = function (texture, scene, noMipmap, isCompressed, samplingMode) {\r\n var gl = this._gl;\r\n if (!gl) {\r\n return;\r\n }\r\n var filters = this._getSamplingParameters(samplingMode, !noMipmap);\r\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, filters.mag);\r\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, filters.min);\r\n if (!noMipmap && !isCompressed) {\r\n gl.generateMipmap(gl.TEXTURE_2D);\r\n }\r\n this._bindTextureDirectly(gl.TEXTURE_2D, null);\r\n // this.resetTextureCache();\r\n if (scene) {\r\n scene._removePendingData(texture);\r\n }\r\n texture.onLoadedObservable.notifyObservers(texture);\r\n texture.onLoadedObservable.clear();\r\n };\r\n ThinEngine.prototype._prepareWebGLTexture = function (texture, scene, width, height, invertY, noMipmap, isCompressed, processFunction, samplingMode) {\r\n var _this = this;\r\n if (samplingMode === void 0) { samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE; }\r\n var maxTextureSize = this.getCaps().maxTextureSize;\r\n var potWidth = Math.min(maxTextureSize, this.needPOTTextures ? ThinEngine.GetExponentOfTwo(width, maxTextureSize) : width);\r\n var potHeight = Math.min(maxTextureSize, this.needPOTTextures ? ThinEngine.GetExponentOfTwo(height, maxTextureSize) : height);\r\n var gl = this._gl;\r\n if (!gl) {\r\n return;\r\n }\r\n if (!texture._webGLTexture) {\r\n // this.resetTextureCache();\r\n if (scene) {\r\n scene._removePendingData(texture);\r\n }\r\n return;\r\n }\r\n this._bindTextureDirectly(gl.TEXTURE_2D, texture, true);\r\n this._unpackFlipY(invertY === undefined ? true : (invertY ? true : false));\r\n texture.baseWidth = width;\r\n texture.baseHeight = height;\r\n texture.width = potWidth;\r\n texture.height = potHeight;\r\n texture.isReady = true;\r\n if (processFunction(potWidth, potHeight, function () {\r\n _this._prepareWebGLTextureContinuation(texture, scene, noMipmap, isCompressed, samplingMode);\r\n })) {\r\n // Returning as texture needs extra async steps\r\n return;\r\n }\r\n this._prepareWebGLTextureContinuation(texture, scene, noMipmap, isCompressed, samplingMode);\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._releaseFramebufferObjects = function (texture) {\r\n var gl = this._gl;\r\n if (texture._framebuffer) {\r\n gl.deleteFramebuffer(texture._framebuffer);\r\n texture._framebuffer = null;\r\n }\r\n if (texture._depthStencilBuffer) {\r\n gl.deleteRenderbuffer(texture._depthStencilBuffer);\r\n texture._depthStencilBuffer = null;\r\n }\r\n if (texture._MSAAFramebuffer) {\r\n gl.deleteFramebuffer(texture._MSAAFramebuffer);\r\n texture._MSAAFramebuffer = null;\r\n }\r\n if (texture._MSAARenderBuffer) {\r\n gl.deleteRenderbuffer(texture._MSAARenderBuffer);\r\n texture._MSAARenderBuffer = null;\r\n }\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._releaseTexture = function (texture) {\r\n this._releaseFramebufferObjects(texture);\r\n this._deleteTexture(texture._webGLTexture);\r\n // Unbind channels\r\n this.unbindAllTextures();\r\n var index = this._internalTexturesCache.indexOf(texture);\r\n if (index !== -1) {\r\n this._internalTexturesCache.splice(index, 1);\r\n }\r\n // Integrated fixed lod samplers.\r\n if (texture._lodTextureHigh) {\r\n texture._lodTextureHigh.dispose();\r\n }\r\n if (texture._lodTextureMid) {\r\n texture._lodTextureMid.dispose();\r\n }\r\n if (texture._lodTextureLow) {\r\n texture._lodTextureLow.dispose();\r\n }\r\n // Integrated irradiance map.\r\n if (texture._irradianceTexture) {\r\n texture._irradianceTexture.dispose();\r\n }\r\n };\r\n ThinEngine.prototype._deleteTexture = function (texture) {\r\n this._gl.deleteTexture(texture);\r\n };\r\n ThinEngine.prototype._setProgram = function (program) {\r\n if (this._currentProgram !== program) {\r\n this._gl.useProgram(program);\r\n this._currentProgram = program;\r\n }\r\n };\r\n /**\r\n * Binds an effect to the webGL context\r\n * @param effect defines the effect to bind\r\n */\r\n ThinEngine.prototype.bindSamplers = function (effect) {\r\n var webGLPipelineContext = effect.getPipelineContext();\r\n this._setProgram(webGLPipelineContext.program);\r\n var samplers = effect.getSamplers();\r\n for (var index = 0; index < samplers.length; index++) {\r\n var uniform = effect.getUniform(samplers[index]);\r\n if (uniform) {\r\n this._boundUniforms[index] = uniform;\r\n }\r\n }\r\n this._currentEffect = null;\r\n };\r\n ThinEngine.prototype._activateCurrentTexture = function () {\r\n if (this._currentTextureChannel !== this._activeChannel) {\r\n this._gl.activeTexture(this._gl.TEXTURE0 + this._activeChannel);\r\n this._currentTextureChannel = this._activeChannel;\r\n }\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._bindTextureDirectly = function (target, texture, forTextureDataUpdate, force) {\r\n if (forTextureDataUpdate === void 0) { forTextureDataUpdate = false; }\r\n if (force === void 0) { force = false; }\r\n var wasPreviouslyBound = false;\r\n var isTextureForRendering = texture && texture._associatedChannel > -1;\r\n if (forTextureDataUpdate && isTextureForRendering) {\r\n this._activeChannel = texture._associatedChannel;\r\n }\r\n var currentTextureBound = this._boundTexturesCache[this._activeChannel];\r\n if (currentTextureBound !== texture || force) {\r\n this._activateCurrentTexture();\r\n if (texture && texture.isMultiview) {\r\n this._gl.bindTexture(target, texture ? texture._colorTextureArray : null);\r\n }\r\n else {\r\n this._gl.bindTexture(target, texture ? texture._webGLTexture : null);\r\n }\r\n this._boundTexturesCache[this._activeChannel] = texture;\r\n if (texture) {\r\n texture._associatedChannel = this._activeChannel;\r\n }\r\n }\r\n else if (forTextureDataUpdate) {\r\n wasPreviouslyBound = true;\r\n this._activateCurrentTexture();\r\n }\r\n if (isTextureForRendering && !forTextureDataUpdate) {\r\n this._bindSamplerUniformToChannel(texture._associatedChannel, this._activeChannel);\r\n }\r\n return wasPreviouslyBound;\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._bindTexture = function (channel, texture) {\r\n if (channel === undefined) {\r\n return;\r\n }\r\n if (texture) {\r\n texture._associatedChannel = channel;\r\n }\r\n this._activeChannel = channel;\r\n this._bindTextureDirectly(this._gl.TEXTURE_2D, texture);\r\n };\r\n /**\r\n * Unbind all textures from the webGL context\r\n */\r\n ThinEngine.prototype.unbindAllTextures = function () {\r\n for (var channel = 0; channel < this._maxSimultaneousTextures; channel++) {\r\n this._activeChannel = channel;\r\n this._bindTextureDirectly(this._gl.TEXTURE_2D, null);\r\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null);\r\n if (this.webGLVersion > 1) {\r\n this._bindTextureDirectly(this._gl.TEXTURE_3D, null);\r\n }\r\n }\r\n };\r\n /**\r\n * Sets a texture to the according uniform.\r\n * @param channel The texture channel\r\n * @param uniform The uniform to set\r\n * @param texture The texture to apply\r\n */\r\n ThinEngine.prototype.setTexture = function (channel, uniform, texture) {\r\n if (channel === undefined) {\r\n return;\r\n }\r\n if (uniform) {\r\n this._boundUniforms[channel] = uniform;\r\n }\r\n this._setTexture(channel, texture);\r\n };\r\n ThinEngine.prototype._bindSamplerUniformToChannel = function (sourceSlot, destination) {\r\n var uniform = this._boundUniforms[sourceSlot];\r\n if (!uniform || uniform._currentState === destination) {\r\n return;\r\n }\r\n this._gl.uniform1i(uniform, destination);\r\n uniform._currentState = destination;\r\n };\r\n ThinEngine.prototype._getTextureWrapMode = function (mode) {\r\n switch (mode) {\r\n case Constants.TEXTURE_WRAP_ADDRESSMODE:\r\n return this._gl.REPEAT;\r\n case Constants.TEXTURE_CLAMP_ADDRESSMODE:\r\n return this._gl.CLAMP_TO_EDGE;\r\n case Constants.TEXTURE_MIRROR_ADDRESSMODE:\r\n return this._gl.MIRRORED_REPEAT;\r\n }\r\n return this._gl.REPEAT;\r\n };\r\n ThinEngine.prototype._setTexture = function (channel, texture, isPartOfTextureArray, depthStencilTexture) {\r\n if (isPartOfTextureArray === void 0) { isPartOfTextureArray = false; }\r\n if (depthStencilTexture === void 0) { depthStencilTexture = false; }\r\n // Not ready?\r\n if (!texture) {\r\n if (this._boundTexturesCache[channel] != null) {\r\n this._activeChannel = channel;\r\n this._bindTextureDirectly(this._gl.TEXTURE_2D, null);\r\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null);\r\n if (this.webGLVersion > 1) {\r\n this._bindTextureDirectly(this._gl.TEXTURE_3D, null);\r\n }\r\n }\r\n return false;\r\n }\r\n // Video\r\n if (texture.video) {\r\n this._activeChannel = channel;\r\n texture.update();\r\n }\r\n else if (texture.delayLoadState === Constants.DELAYLOADSTATE_NOTLOADED) { // Delay loading\r\n texture.delayLoad();\r\n return false;\r\n }\r\n var internalTexture;\r\n if (depthStencilTexture) {\r\n internalTexture = texture.depthStencilTexture;\r\n }\r\n else if (texture.isReady()) {\r\n internalTexture = texture.getInternalTexture();\r\n }\r\n else if (texture.isCube) {\r\n internalTexture = this.emptyCubeTexture;\r\n }\r\n else if (texture.is3D) {\r\n internalTexture = this.emptyTexture3D;\r\n }\r\n else {\r\n internalTexture = this.emptyTexture;\r\n }\r\n if (!isPartOfTextureArray && internalTexture) {\r\n internalTexture._associatedChannel = channel;\r\n }\r\n var needToBind = true;\r\n if (this._boundTexturesCache[channel] === internalTexture) {\r\n if (!isPartOfTextureArray) {\r\n this._bindSamplerUniformToChannel(internalTexture._associatedChannel, channel);\r\n }\r\n needToBind = false;\r\n }\r\n this._activeChannel = channel;\r\n if (internalTexture && internalTexture.isMultiview) {\r\n if (needToBind) {\r\n this._bindTextureDirectly(this._gl.TEXTURE_2D_ARRAY, internalTexture, isPartOfTextureArray);\r\n }\r\n }\r\n else if (internalTexture && internalTexture.is3D) {\r\n if (needToBind) {\r\n this._bindTextureDirectly(this._gl.TEXTURE_3D, internalTexture, isPartOfTextureArray);\r\n }\r\n if (internalTexture && internalTexture._cachedWrapU !== texture.wrapU) {\r\n internalTexture._cachedWrapU = texture.wrapU;\r\n this._setTextureParameterInteger(this._gl.TEXTURE_3D, this._gl.TEXTURE_WRAP_S, this._getTextureWrapMode(texture.wrapU), internalTexture);\r\n }\r\n if (internalTexture && internalTexture._cachedWrapV !== texture.wrapV) {\r\n internalTexture._cachedWrapV = texture.wrapV;\r\n this._setTextureParameterInteger(this._gl.TEXTURE_3D, this._gl.TEXTURE_WRAP_T, this._getTextureWrapMode(texture.wrapV), internalTexture);\r\n }\r\n if (internalTexture && internalTexture._cachedWrapR !== texture.wrapR) {\r\n internalTexture._cachedWrapR = texture.wrapR;\r\n this._setTextureParameterInteger(this._gl.TEXTURE_3D, this._gl.TEXTURE_WRAP_R, this._getTextureWrapMode(texture.wrapR), internalTexture);\r\n }\r\n this._setAnisotropicLevel(this._gl.TEXTURE_3D, texture);\r\n }\r\n else if (internalTexture && internalTexture.isCube) {\r\n if (needToBind) {\r\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, internalTexture, isPartOfTextureArray);\r\n }\r\n if (internalTexture._cachedCoordinatesMode !== texture.coordinatesMode) {\r\n internalTexture._cachedCoordinatesMode = texture.coordinatesMode;\r\n // CUBIC_MODE and SKYBOX_MODE both require CLAMP_TO_EDGE. All other modes use REPEAT.\r\n var textureWrapMode = (texture.coordinatesMode !== Constants.TEXTURE_CUBIC_MODE && texture.coordinatesMode !== Constants.TEXTURE_SKYBOX_MODE) ? this._gl.REPEAT : this._gl.CLAMP_TO_EDGE;\r\n this._setTextureParameterInteger(this._gl.TEXTURE_CUBE_MAP, this._gl.TEXTURE_WRAP_S, textureWrapMode, internalTexture);\r\n this._setTextureParameterInteger(this._gl.TEXTURE_CUBE_MAP, this._gl.TEXTURE_WRAP_T, textureWrapMode);\r\n }\r\n this._setAnisotropicLevel(this._gl.TEXTURE_CUBE_MAP, texture);\r\n }\r\n else {\r\n if (needToBind) {\r\n this._bindTextureDirectly(this._gl.TEXTURE_2D, internalTexture, isPartOfTextureArray);\r\n }\r\n if (internalTexture && internalTexture._cachedWrapU !== texture.wrapU) {\r\n internalTexture._cachedWrapU = texture.wrapU;\r\n this._setTextureParameterInteger(this._gl.TEXTURE_2D, this._gl.TEXTURE_WRAP_S, this._getTextureWrapMode(texture.wrapU), internalTexture);\r\n }\r\n if (internalTexture && internalTexture._cachedWrapV !== texture.wrapV) {\r\n internalTexture._cachedWrapV = texture.wrapV;\r\n this._setTextureParameterInteger(this._gl.TEXTURE_2D, this._gl.TEXTURE_WRAP_T, this._getTextureWrapMode(texture.wrapV), internalTexture);\r\n }\r\n this._setAnisotropicLevel(this._gl.TEXTURE_2D, texture);\r\n }\r\n return true;\r\n };\r\n /**\r\n * Sets an array of texture to the webGL context\r\n * @param channel defines the channel where the texture array must be set\r\n * @param uniform defines the associated uniform location\r\n * @param textures defines the array of textures to bind\r\n */\r\n ThinEngine.prototype.setTextureArray = function (channel, uniform, textures) {\r\n if (channel === undefined || !uniform) {\r\n return;\r\n }\r\n if (!this._textureUnits || this._textureUnits.length !== textures.length) {\r\n this._textureUnits = new Int32Array(textures.length);\r\n }\r\n for (var i = 0; i < textures.length; i++) {\r\n var texture = textures[i].getInternalTexture();\r\n if (texture) {\r\n this._textureUnits[i] = channel + i;\r\n texture._associatedChannel = channel + i;\r\n }\r\n else {\r\n this._textureUnits[i] = -1;\r\n }\r\n }\r\n this._gl.uniform1iv(uniform, this._textureUnits);\r\n for (var index = 0; index < textures.length; index++) {\r\n this._setTexture(this._textureUnits[index], textures[index], true);\r\n }\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._setAnisotropicLevel = function (target, texture) {\r\n var internalTexture = texture.getInternalTexture();\r\n if (!internalTexture) {\r\n return;\r\n }\r\n var anisotropicFilterExtension = this._caps.textureAnisotropicFilterExtension;\r\n var value = texture.anisotropicFilteringLevel;\r\n if (internalTexture.samplingMode !== Constants.TEXTURE_LINEAR_LINEAR_MIPNEAREST\r\n && internalTexture.samplingMode !== Constants.TEXTURE_LINEAR_LINEAR_MIPLINEAR\r\n && internalTexture.samplingMode !== Constants.TEXTURE_LINEAR_LINEAR) {\r\n value = 1; // Forcing the anisotropic to 1 because else webgl will force filters to linear\r\n }\r\n if (anisotropicFilterExtension && internalTexture._cachedAnisotropicFilteringLevel !== value) {\r\n this._setTextureParameterFloat(target, anisotropicFilterExtension.TEXTURE_MAX_ANISOTROPY_EXT, Math.min(value, this._caps.maxAnisotropy), internalTexture);\r\n internalTexture._cachedAnisotropicFilteringLevel = value;\r\n }\r\n };\r\n ThinEngine.prototype._setTextureParameterFloat = function (target, parameter, value, texture) {\r\n this._bindTextureDirectly(target, texture, true, true);\r\n this._gl.texParameterf(target, parameter, value);\r\n };\r\n ThinEngine.prototype._setTextureParameterInteger = function (target, parameter, value, texture) {\r\n if (texture) {\r\n this._bindTextureDirectly(target, texture, true, true);\r\n }\r\n this._gl.texParameteri(target, parameter, value);\r\n };\r\n /**\r\n * Unbind all vertex attributes from the webGL context\r\n */\r\n ThinEngine.prototype.unbindAllAttributes = function () {\r\n if (this._mustWipeVertexAttributes) {\r\n this._mustWipeVertexAttributes = false;\r\n for (var i = 0; i < this._caps.maxVertexAttribs; i++) {\r\n this._gl.disableVertexAttribArray(i);\r\n this._vertexAttribArraysEnabled[i] = false;\r\n this._currentBufferPointers[i].active = false;\r\n }\r\n return;\r\n }\r\n for (var i = 0, ul = this._vertexAttribArraysEnabled.length; i < ul; i++) {\r\n if (i >= this._caps.maxVertexAttribs || !this._vertexAttribArraysEnabled[i]) {\r\n continue;\r\n }\r\n this._gl.disableVertexAttribArray(i);\r\n this._vertexAttribArraysEnabled[i] = false;\r\n this._currentBufferPointers[i].active = false;\r\n }\r\n };\r\n /**\r\n * Force the engine to release all cached effects. This means that next effect compilation will have to be done completely even if a similar effect was already compiled\r\n */\r\n ThinEngine.prototype.releaseEffects = function () {\r\n for (var name in this._compiledEffects) {\r\n var webGLPipelineContext = this._compiledEffects[name].getPipelineContext();\r\n this._deletePipelineContext(webGLPipelineContext);\r\n }\r\n this._compiledEffects = {};\r\n };\r\n /**\r\n * Dispose and release all associated resources\r\n */\r\n ThinEngine.prototype.dispose = function () {\r\n this.stopRenderLoop();\r\n // Empty texture\r\n if (this._emptyTexture) {\r\n this._releaseTexture(this._emptyTexture);\r\n this._emptyTexture = null;\r\n }\r\n if (this._emptyCubeTexture) {\r\n this._releaseTexture(this._emptyCubeTexture);\r\n this._emptyCubeTexture = null;\r\n }\r\n // Release effects\r\n this.releaseEffects();\r\n // Unbind\r\n this.unbindAllAttributes();\r\n this._boundUniforms = [];\r\n // Events\r\n if (DomManagement.IsWindowObjectExist()) {\r\n if (this._renderingCanvas) {\r\n if (!this._doNotHandleContextLost) {\r\n this._renderingCanvas.removeEventListener(\"webglcontextlost\", this._onContextLost);\r\n this._renderingCanvas.removeEventListener(\"webglcontextrestored\", this._onContextRestored);\r\n }\r\n }\r\n }\r\n this._workingCanvas = null;\r\n this._workingContext = null;\r\n this._currentBufferPointers = [];\r\n this._renderingCanvas = null;\r\n this._currentProgram = null;\r\n this._bindedRenderFunction = null;\r\n Effect.ResetCache();\r\n // Abort active requests\r\n for (var _i = 0, _a = this._activeRequests; _i < _a.length; _i++) {\r\n var request = _a[_i];\r\n request.abort();\r\n }\r\n };\r\n /**\r\n * Attach a new callback raised when context lost event is fired\r\n * @param callback defines the callback to call\r\n */\r\n ThinEngine.prototype.attachContextLostEvent = function (callback) {\r\n if (this._renderingCanvas) {\r\n this._renderingCanvas.addEventListener(\"webglcontextlost\", callback, false);\r\n }\r\n };\r\n /**\r\n * Attach a new callback raised when context restored event is fired\r\n * @param callback defines the callback to call\r\n */\r\n ThinEngine.prototype.attachContextRestoredEvent = function (callback) {\r\n if (this._renderingCanvas) {\r\n this._renderingCanvas.addEventListener(\"webglcontextrestored\", callback, false);\r\n }\r\n };\r\n /**\r\n * Get the current error code of the webGL context\r\n * @returns the error code\r\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/getError\r\n */\r\n ThinEngine.prototype.getError = function () {\r\n return this._gl.getError();\r\n };\r\n ThinEngine.prototype._canRenderToFloatFramebuffer = function () {\r\n if (this._webGLVersion > 1) {\r\n return this._caps.colorBufferFloat;\r\n }\r\n return this._canRenderToFramebuffer(Constants.TEXTURETYPE_FLOAT);\r\n };\r\n ThinEngine.prototype._canRenderToHalfFloatFramebuffer = function () {\r\n if (this._webGLVersion > 1) {\r\n return this._caps.colorBufferFloat;\r\n }\r\n return this._canRenderToFramebuffer(Constants.TEXTURETYPE_HALF_FLOAT);\r\n };\r\n // Thank you : http://stackoverflow.com/questions/28827511/webgl-ios-render-to-floating-point-texture\r\n ThinEngine.prototype._canRenderToFramebuffer = function (type) {\r\n var gl = this._gl;\r\n //clear existing errors\r\n while (gl.getError() !== gl.NO_ERROR) { }\r\n var successful = true;\r\n var texture = gl.createTexture();\r\n gl.bindTexture(gl.TEXTURE_2D, texture);\r\n gl.texImage2D(gl.TEXTURE_2D, 0, this._getRGBABufferInternalSizedFormat(type), 1, 1, 0, gl.RGBA, this._getWebGLTextureType(type), null);\r\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\r\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\r\n var fb = gl.createFramebuffer();\r\n gl.bindFramebuffer(gl.FRAMEBUFFER, fb);\r\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\r\n var status = gl.checkFramebufferStatus(gl.FRAMEBUFFER);\r\n successful = successful && (status === gl.FRAMEBUFFER_COMPLETE);\r\n successful = successful && (gl.getError() === gl.NO_ERROR);\r\n //try render by clearing frame buffer's color buffer\r\n if (successful) {\r\n gl.clear(gl.COLOR_BUFFER_BIT);\r\n successful = successful && (gl.getError() === gl.NO_ERROR);\r\n }\r\n //try reading from frame to ensure render occurs (just creating the FBO is not sufficient to determine if rendering is supported)\r\n if (successful) {\r\n //in practice it's sufficient to just read from the backbuffer rather than handle potentially issues reading from the texture\r\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\r\n var readFormat = gl.RGBA;\r\n var readType = gl.UNSIGNED_BYTE;\r\n var buffer = new Uint8Array(4);\r\n gl.readPixels(0, 0, 1, 1, readFormat, readType, buffer);\r\n successful = successful && (gl.getError() === gl.NO_ERROR);\r\n }\r\n //clean up\r\n gl.deleteTexture(texture);\r\n gl.deleteFramebuffer(fb);\r\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\r\n //clear accumulated errors\r\n while (!successful && (gl.getError() !== gl.NO_ERROR)) { }\r\n return successful;\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._getWebGLTextureType = function (type) {\r\n if (this._webGLVersion === 1) {\r\n switch (type) {\r\n case Constants.TEXTURETYPE_FLOAT:\r\n return this._gl.FLOAT;\r\n case Constants.TEXTURETYPE_HALF_FLOAT:\r\n return this._gl.HALF_FLOAT_OES;\r\n case Constants.TEXTURETYPE_UNSIGNED_BYTE:\r\n return this._gl.UNSIGNED_BYTE;\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4:\r\n return this._gl.UNSIGNED_SHORT_4_4_4_4;\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1:\r\n return this._gl.UNSIGNED_SHORT_5_5_5_1;\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT_5_6_5:\r\n return this._gl.UNSIGNED_SHORT_5_6_5;\r\n }\r\n return this._gl.UNSIGNED_BYTE;\r\n }\r\n switch (type) {\r\n case Constants.TEXTURETYPE_BYTE:\r\n return this._gl.BYTE;\r\n case Constants.TEXTURETYPE_UNSIGNED_BYTE:\r\n return this._gl.UNSIGNED_BYTE;\r\n case Constants.TEXTURETYPE_SHORT:\r\n return this._gl.SHORT;\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT:\r\n return this._gl.UNSIGNED_SHORT;\r\n case Constants.TEXTURETYPE_INT:\r\n return this._gl.INT;\r\n case Constants.TEXTURETYPE_UNSIGNED_INTEGER: // Refers to UNSIGNED_INT\r\n return this._gl.UNSIGNED_INT;\r\n case Constants.TEXTURETYPE_FLOAT:\r\n return this._gl.FLOAT;\r\n case Constants.TEXTURETYPE_HALF_FLOAT:\r\n return this._gl.HALF_FLOAT;\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4:\r\n return this._gl.UNSIGNED_SHORT_4_4_4_4;\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1:\r\n return this._gl.UNSIGNED_SHORT_5_5_5_1;\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT_5_6_5:\r\n return this._gl.UNSIGNED_SHORT_5_6_5;\r\n case Constants.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV:\r\n return this._gl.UNSIGNED_INT_2_10_10_10_REV;\r\n case Constants.TEXTURETYPE_UNSIGNED_INT_24_8:\r\n return this._gl.UNSIGNED_INT_24_8;\r\n case Constants.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV:\r\n return this._gl.UNSIGNED_INT_10F_11F_11F_REV;\r\n case Constants.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV:\r\n return this._gl.UNSIGNED_INT_5_9_9_9_REV;\r\n case Constants.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV:\r\n return this._gl.FLOAT_32_UNSIGNED_INT_24_8_REV;\r\n }\r\n return this._gl.UNSIGNED_BYTE;\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._getInternalFormat = function (format) {\r\n var internalFormat = this._gl.RGBA;\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_ALPHA:\r\n internalFormat = this._gl.ALPHA;\r\n break;\r\n case Constants.TEXTUREFORMAT_LUMINANCE:\r\n internalFormat = this._gl.LUMINANCE;\r\n break;\r\n case Constants.TEXTUREFORMAT_LUMINANCE_ALPHA:\r\n internalFormat = this._gl.LUMINANCE_ALPHA;\r\n break;\r\n case Constants.TEXTUREFORMAT_RED:\r\n internalFormat = this._gl.RED;\r\n break;\r\n case Constants.TEXTUREFORMAT_RG:\r\n internalFormat = this._gl.RG;\r\n break;\r\n case Constants.TEXTUREFORMAT_RGB:\r\n internalFormat = this._gl.RGB;\r\n break;\r\n case Constants.TEXTUREFORMAT_RGBA:\r\n internalFormat = this._gl.RGBA;\r\n break;\r\n }\r\n if (this._webGLVersion > 1) {\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED_INTEGER:\r\n internalFormat = this._gl.RED_INTEGER;\r\n break;\r\n case Constants.TEXTUREFORMAT_RG_INTEGER:\r\n internalFormat = this._gl.RG_INTEGER;\r\n break;\r\n case Constants.TEXTUREFORMAT_RGB_INTEGER:\r\n internalFormat = this._gl.RGB_INTEGER;\r\n break;\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n internalFormat = this._gl.RGBA_INTEGER;\r\n break;\r\n }\r\n }\r\n return internalFormat;\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._getRGBABufferInternalSizedFormat = function (type, format) {\r\n if (this._webGLVersion === 1) {\r\n if (format !== undefined) {\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_ALPHA:\r\n return this._gl.ALPHA;\r\n case Constants.TEXTUREFORMAT_LUMINANCE:\r\n return this._gl.LUMINANCE;\r\n case Constants.TEXTUREFORMAT_LUMINANCE_ALPHA:\r\n return this._gl.LUMINANCE_ALPHA;\r\n }\r\n }\r\n return this._gl.RGBA;\r\n }\r\n switch (type) {\r\n case Constants.TEXTURETYPE_BYTE:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED:\r\n return this._gl.R8_SNORM;\r\n case Constants.TEXTUREFORMAT_RG:\r\n return this._gl.RG8_SNORM;\r\n case Constants.TEXTUREFORMAT_RGB:\r\n return this._gl.RGB8_SNORM;\r\n case Constants.TEXTUREFORMAT_RED_INTEGER:\r\n return this._gl.R8I;\r\n case Constants.TEXTUREFORMAT_RG_INTEGER:\r\n return this._gl.RG8I;\r\n case Constants.TEXTUREFORMAT_RGB_INTEGER:\r\n return this._gl.RGB8I;\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n return this._gl.RGBA8I;\r\n default:\r\n return this._gl.RGBA8_SNORM;\r\n }\r\n case Constants.TEXTURETYPE_UNSIGNED_BYTE:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED:\r\n return this._gl.R8;\r\n case Constants.TEXTUREFORMAT_RG:\r\n return this._gl.RG8;\r\n case Constants.TEXTUREFORMAT_RGB:\r\n return this._gl.RGB8; // By default. Other possibilities are RGB565, SRGB8.\r\n case Constants.TEXTUREFORMAT_RGBA:\r\n return this._gl.RGBA8; // By default. Other possibilities are RGB5_A1, RGBA4, SRGB8_ALPHA8.\r\n case Constants.TEXTUREFORMAT_RED_INTEGER:\r\n return this._gl.R8UI;\r\n case Constants.TEXTUREFORMAT_RG_INTEGER:\r\n return this._gl.RG8UI;\r\n case Constants.TEXTUREFORMAT_RGB_INTEGER:\r\n return this._gl.RGB8UI;\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n return this._gl.RGBA8UI;\r\n case Constants.TEXTUREFORMAT_ALPHA:\r\n return this._gl.ALPHA;\r\n case Constants.TEXTUREFORMAT_LUMINANCE:\r\n return this._gl.LUMINANCE;\r\n case Constants.TEXTUREFORMAT_LUMINANCE_ALPHA:\r\n return this._gl.LUMINANCE_ALPHA;\r\n default:\r\n return this._gl.RGBA8;\r\n }\r\n case Constants.TEXTURETYPE_SHORT:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED_INTEGER:\r\n return this._gl.R16I;\r\n case Constants.TEXTUREFORMAT_RG_INTEGER:\r\n return this._gl.RG16I;\r\n case Constants.TEXTUREFORMAT_RGB_INTEGER:\r\n return this._gl.RGB16I;\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n return this._gl.RGBA16I;\r\n default:\r\n return this._gl.RGBA16I;\r\n }\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED_INTEGER:\r\n return this._gl.R16UI;\r\n case Constants.TEXTUREFORMAT_RG_INTEGER:\r\n return this._gl.RG16UI;\r\n case Constants.TEXTUREFORMAT_RGB_INTEGER:\r\n return this._gl.RGB16UI;\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n return this._gl.RGBA16UI;\r\n default:\r\n return this._gl.RGBA16UI;\r\n }\r\n case Constants.TEXTURETYPE_INT:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED_INTEGER:\r\n return this._gl.R32I;\r\n case Constants.TEXTUREFORMAT_RG_INTEGER:\r\n return this._gl.RG32I;\r\n case Constants.TEXTUREFORMAT_RGB_INTEGER:\r\n return this._gl.RGB32I;\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n return this._gl.RGBA32I;\r\n default:\r\n return this._gl.RGBA32I;\r\n }\r\n case Constants.TEXTURETYPE_UNSIGNED_INTEGER: // Refers to UNSIGNED_INT\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED_INTEGER:\r\n return this._gl.R32UI;\r\n case Constants.TEXTUREFORMAT_RG_INTEGER:\r\n return this._gl.RG32UI;\r\n case Constants.TEXTUREFORMAT_RGB_INTEGER:\r\n return this._gl.RGB32UI;\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n return this._gl.RGBA32UI;\r\n default:\r\n return this._gl.RGBA32UI;\r\n }\r\n case Constants.TEXTURETYPE_FLOAT:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED:\r\n return this._gl.R32F; // By default. Other possibility is R16F.\r\n case Constants.TEXTUREFORMAT_RG:\r\n return this._gl.RG32F; // By default. Other possibility is RG16F.\r\n case Constants.TEXTUREFORMAT_RGB:\r\n return this._gl.RGB32F; // By default. Other possibilities are RGB16F, R11F_G11F_B10F, RGB9_E5.\r\n case Constants.TEXTUREFORMAT_RGBA:\r\n return this._gl.RGBA32F; // By default. Other possibility is RGBA16F.\r\n default:\r\n return this._gl.RGBA32F;\r\n }\r\n case Constants.TEXTURETYPE_HALF_FLOAT:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED:\r\n return this._gl.R16F;\r\n case Constants.TEXTUREFORMAT_RG:\r\n return this._gl.RG16F;\r\n case Constants.TEXTUREFORMAT_RGB:\r\n return this._gl.RGB16F; // By default. Other possibilities are R11F_G11F_B10F, RGB9_E5.\r\n case Constants.TEXTUREFORMAT_RGBA:\r\n return this._gl.RGBA16F;\r\n default:\r\n return this._gl.RGBA16F;\r\n }\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT_5_6_5:\r\n return this._gl.RGB565;\r\n case Constants.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV:\r\n return this._gl.R11F_G11F_B10F;\r\n case Constants.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV:\r\n return this._gl.RGB9_E5;\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4:\r\n return this._gl.RGBA4;\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1:\r\n return this._gl.RGB5_A1;\r\n case Constants.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RGBA:\r\n return this._gl.RGB10_A2; // By default. Other possibility is RGB5_A1.\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n return this._gl.RGB10_A2UI;\r\n default:\r\n return this._gl.RGB10_A2;\r\n }\r\n }\r\n return this._gl.RGBA8;\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._getRGBAMultiSampleBufferFormat = function (type) {\r\n if (type === Constants.TEXTURETYPE_FLOAT) {\r\n return this._gl.RGBA32F;\r\n }\r\n else if (type === Constants.TEXTURETYPE_HALF_FLOAT) {\r\n return this._gl.RGBA16F;\r\n }\r\n return this._gl.RGBA8;\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._loadFile = function (url, onSuccess, onProgress, offlineProvider, useArrayBuffer, onError) {\r\n var _this = this;\r\n var request = FileTools.LoadFile(url, onSuccess, onProgress, offlineProvider, useArrayBuffer, onError);\r\n this._activeRequests.push(request);\r\n request.onCompleteObservable.add(function (request) {\r\n _this._activeRequests.splice(_this._activeRequests.indexOf(request), 1);\r\n });\r\n return request;\r\n };\r\n // Statics\r\n /**\r\n * Gets a boolean indicating if the engine can be instanciated (ie. if a webGL context can be found)\r\n * @returns true if the engine can be created\r\n * @ignorenaming\r\n */\r\n ThinEngine.isSupported = function () {\r\n try {\r\n var tempcanvas = document.createElement(\"canvas\");\r\n var gl = tempcanvas.getContext(\"webgl\") || tempcanvas.getContext(\"experimental-webgl\");\r\n return gl != null && !!window.WebGLRenderingContext;\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n };\r\n /**\r\n * Find the next highest power of two.\r\n * @param x Number to start search from.\r\n * @return Next highest power of two.\r\n */\r\n ThinEngine.CeilingPOT = function (x) {\r\n x--;\r\n x |= x >> 1;\r\n x |= x >> 2;\r\n x |= x >> 4;\r\n x |= x >> 8;\r\n x |= x >> 16;\r\n x++;\r\n return x;\r\n };\r\n /**\r\n * Find the next lowest power of two.\r\n * @param x Number to start search from.\r\n * @return Next lowest power of two.\r\n */\r\n ThinEngine.FloorPOT = function (x) {\r\n x = x | (x >> 1);\r\n x = x | (x >> 2);\r\n x = x | (x >> 4);\r\n x = x | (x >> 8);\r\n x = x | (x >> 16);\r\n return x - (x >> 1);\r\n };\r\n /**\r\n * Find the nearest power of two.\r\n * @param x Number to start search from.\r\n * @return Next nearest power of two.\r\n */\r\n ThinEngine.NearestPOT = function (x) {\r\n var c = ThinEngine.CeilingPOT(x);\r\n var f = ThinEngine.FloorPOT(x);\r\n return (c - x) > (x - f) ? f : c;\r\n };\r\n /**\r\n * Get the closest exponent of two\r\n * @param value defines the value to approximate\r\n * @param max defines the maximum value to return\r\n * @param mode defines how to define the closest value\r\n * @returns closest exponent of two of the given value\r\n */\r\n ThinEngine.GetExponentOfTwo = function (value, max, mode) {\r\n if (mode === void 0) { mode = Constants.SCALEMODE_NEAREST; }\r\n var pot;\r\n switch (mode) {\r\n case Constants.SCALEMODE_FLOOR:\r\n pot = ThinEngine.FloorPOT(value);\r\n break;\r\n case Constants.SCALEMODE_NEAREST:\r\n pot = ThinEngine.NearestPOT(value);\r\n break;\r\n case Constants.SCALEMODE_CEILING:\r\n default:\r\n pot = ThinEngine.CeilingPOT(value);\r\n break;\r\n }\r\n return Math.min(pot, max);\r\n };\r\n /**\r\n * Queue a new function into the requested animation frame pool (ie. this function will be executed byt the browser for the next frame)\r\n * @param func - the function to be called\r\n * @param requester - the object that will request the next frame. Falls back to window.\r\n * @returns frame number\r\n */\r\n ThinEngine.QueueNewFrame = function (func, requester) {\r\n if (!DomManagement.IsWindowObjectExist()) {\r\n return setTimeout(func, 16);\r\n }\r\n if (!requester) {\r\n requester = window;\r\n }\r\n if (requester.requestAnimationFrame) {\r\n return requester.requestAnimationFrame(func);\r\n }\r\n else if (requester.msRequestAnimationFrame) {\r\n return requester.msRequestAnimationFrame(func);\r\n }\r\n else if (requester.webkitRequestAnimationFrame) {\r\n return requester.webkitRequestAnimationFrame(func);\r\n }\r\n else if (requester.mozRequestAnimationFrame) {\r\n return requester.mozRequestAnimationFrame(func);\r\n }\r\n else if (requester.oRequestAnimationFrame) {\r\n return requester.oRequestAnimationFrame(func);\r\n }\r\n else {\r\n return window.setTimeout(func, 16);\r\n }\r\n };\r\n /** Use this array to turn off some WebGL2 features on known buggy browsers version */\r\n ThinEngine.ExceptionList = [\r\n { key: \"Chrome\\/63\\.0\", capture: \"63\\\\.0\\\\.3239\\\\.(\\\\d+)\", captureConstraint: 108, targets: [\"uniformBuffer\"] },\r\n { key: \"Firefox\\/58\", capture: null, captureConstraint: null, targets: [\"uniformBuffer\"] },\r\n { key: \"Firefox\\/59\", capture: null, captureConstraint: null, targets: [\"uniformBuffer\"] },\r\n { key: \"Chrome\\/72.+?Mobile\", capture: null, captureConstraint: null, targets: [\"vao\"] },\r\n { key: \"Chrome\\/73.+?Mobile\", capture: null, captureConstraint: null, targets: [\"vao\"] },\r\n { key: \"Chrome\\/74.+?Mobile\", capture: null, captureConstraint: null, targets: [\"vao\"] },\r\n { key: \"Mac OS.+Chrome\\/71\", capture: null, captureConstraint: null, targets: [\"vao\"] },\r\n { key: \"Mac OS.+Chrome\\/72\", capture: null, captureConstraint: null, targets: [\"vao\"] }\r\n ];\r\n /** @hidden */\r\n ThinEngine._TextureLoaders = [];\r\n // Updatable statics so stick with vars here\r\n /**\r\n * Gets or sets the epsilon value used by collision engine\r\n */\r\n ThinEngine.CollisionsEpsilon = 0.001;\r\n return ThinEngine;\r\n}());\r\nexport { ThinEngine };\r\n//# sourceMappingURL=thinEngine.js.map"
  3046. },
  3047. {
  3048. "id": "../../.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  3049. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\Textures\\internalTexture.js",
  3050. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  3051. "index": 32,
  3052. "index2": 31,
  3053. "size": 16680,
  3054. "cacheable": true,
  3055. "built": true,
  3056. "optional": false,
  3057. "prefetched": false,
  3058. "chunks": [
  3059. "thinEngineOnly"
  3060. ],
  3061. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3062. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3063. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3064. "issuerPath": [
  3065. {
  3066. "id": "./thinEngineOnly.ts",
  3067. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  3068. "name": "./thinEngineOnly.ts",
  3069. "profile": {
  3070. "factory": 42,
  3071. "building": 2115
  3072. }
  3073. },
  3074. {
  3075. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3076. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3077. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3078. "profile": {
  3079. "factory": 6,
  3080. "building": 110
  3081. }
  3082. }
  3083. ],
  3084. "profile": {
  3085. "factory": 59,
  3086. "building": 41,
  3087. "dependencies": 4
  3088. },
  3089. "failed": false,
  3090. "errors": 0,
  3091. "warnings": 0,
  3092. "assets": [],
  3093. "reasons": [
  3094. {
  3095. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3096. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3097. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3098. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3099. "type": "harmony side effect evaluation",
  3100. "userRequest": "../Materials/Textures/internalTexture",
  3101. "loc": "12:0-72"
  3102. },
  3103. {
  3104. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3105. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3106. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3107. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3108. "type": "harmony import specifier",
  3109. "userRequest": "../Materials/Textures/internalTexture",
  3110. "loc": "2399:48-63"
  3111. },
  3112. {
  3113. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3114. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3115. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3116. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3117. "type": "harmony import specifier",
  3118. "userRequest": "../Materials/Textures/internalTexture",
  3119. "loc": "2399:70-85"
  3120. },
  3121. {
  3122. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3123. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3124. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3125. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3126. "type": "harmony import specifier",
  3127. "userRequest": "../Materials/Textures/internalTexture",
  3128. "loc": "2523:43-58"
  3129. },
  3130. {
  3131. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3132. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3133. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3134. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3135. "type": "harmony import specifier",
  3136. "userRequest": "../Materials/Textures/internalTexture",
  3137. "loc": "2523:66-81"
  3138. },
  3139. {
  3140. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3141. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3142. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3143. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3144. "type": "harmony import specifier",
  3145. "userRequest": "../Materials/Textures/internalTexture",
  3146. "loc": "2742:34-49"
  3147. },
  3148. {
  3149. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3150. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3151. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3152. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3153. "type": "harmony import specifier",
  3154. "userRequest": "../Materials/Textures/internalTexture",
  3155. "loc": "2742:56-71"
  3156. }
  3157. ],
  3158. "providedExports": [
  3159. "InternalTexture"
  3160. ],
  3161. "optimizationBailout": [],
  3162. "depth": 2,
  3163. "source": "import { Observable } from \"../../Misc/observable\";\r\nimport { RenderTargetCreationOptions } from \"../../Materials/Textures/renderTargetCreationOptions\";\r\nimport { Constants } from \"../../Engines/constants\";\r\nimport { _DevTools } from '../../Misc/devTools';\r\n/**\r\n * Class used to store data associated with WebGL texture data for the engine\r\n * This class should not be used directly\r\n */\r\nvar InternalTexture = /** @class */ (function () {\r\n /**\r\n * Creates a new InternalTexture\r\n * @param engine defines the engine to use\r\n * @param dataSource defines the type of data that will be used\r\n * @param delayAllocation if the texture allocation should be delayed (default: false)\r\n */\r\n function InternalTexture(engine, dataSource, delayAllocation) {\r\n if (delayAllocation === void 0) { delayAllocation = false; }\r\n /**\r\n * Defines if the texture is ready\r\n */\r\n this.isReady = false;\r\n /**\r\n * Defines if the texture is a cube texture\r\n */\r\n this.isCube = false;\r\n /**\r\n * Defines if the texture contains 3D data\r\n */\r\n this.is3D = false;\r\n /**\r\n * Defines if the texture contains multiview data\r\n */\r\n this.isMultiview = false;\r\n /**\r\n * Gets the URL used to load this texture\r\n */\r\n this.url = \"\";\r\n /**\r\n * Gets the sampling mode of the texture\r\n */\r\n this.samplingMode = -1;\r\n /**\r\n * Gets a boolean indicating if the texture needs mipmaps generation\r\n */\r\n this.generateMipMaps = false;\r\n /**\r\n * Gets the number of samples used by the texture (WebGL2+ only)\r\n */\r\n this.samples = 0;\r\n /**\r\n * Gets the type of the texture (int, float...)\r\n */\r\n this.type = -1;\r\n /**\r\n * Gets the format of the texture (RGB, RGBA...)\r\n */\r\n this.format = -1;\r\n /**\r\n * Observable called when the texture is loaded\r\n */\r\n this.onLoadedObservable = new Observable();\r\n /**\r\n * Gets the width of the texture\r\n */\r\n this.width = 0;\r\n /**\r\n * Gets the height of the texture\r\n */\r\n this.height = 0;\r\n /**\r\n * Gets the depth of the texture\r\n */\r\n this.depth = 0;\r\n /**\r\n * Gets the initial width of the texture (It could be rescaled if the current system does not support non power of two textures)\r\n */\r\n this.baseWidth = 0;\r\n /**\r\n * Gets the initial height of the texture (It could be rescaled if the current system does not support non power of two textures)\r\n */\r\n this.baseHeight = 0;\r\n /**\r\n * Gets the initial depth of the texture (It could be rescaled if the current system does not support non power of two textures)\r\n */\r\n this.baseDepth = 0;\r\n /**\r\n * Gets a boolean indicating if the texture is inverted on Y axis\r\n */\r\n this.invertY = false;\r\n // Private\r\n /** @hidden */\r\n this._invertVScale = false;\r\n /** @hidden */\r\n this._associatedChannel = -1;\r\n /** @hidden */\r\n this._dataSource = InternalTexture.DATASOURCE_UNKNOWN;\r\n /** @hidden */\r\n this._buffer = null;\r\n /** @hidden */\r\n this._bufferView = null;\r\n /** @hidden */\r\n this._bufferViewArray = null;\r\n /** @hidden */\r\n this._bufferViewArrayArray = null;\r\n /** @hidden */\r\n this._size = 0;\r\n /** @hidden */\r\n this._extension = \"\";\r\n /** @hidden */\r\n this._files = null;\r\n /** @hidden */\r\n this._workingCanvas = null;\r\n /** @hidden */\r\n this._workingContext = null;\r\n /** @hidden */\r\n this._framebuffer = null;\r\n /** @hidden */\r\n this._depthStencilBuffer = null;\r\n /** @hidden */\r\n this._MSAAFramebuffer = null;\r\n /** @hidden */\r\n this._MSAARenderBuffer = null;\r\n /** @hidden */\r\n this._attachments = null;\r\n /** @hidden */\r\n this._cachedCoordinatesMode = null;\r\n /** @hidden */\r\n this._cachedWrapU = null;\r\n /** @hidden */\r\n this._cachedWrapV = null;\r\n /** @hidden */\r\n this._cachedWrapR = null;\r\n /** @hidden */\r\n this._cachedAnisotropicFilteringLevel = null;\r\n /** @hidden */\r\n this._isDisabled = false;\r\n /** @hidden */\r\n this._compression = null;\r\n /** @hidden */\r\n this._generateStencilBuffer = false;\r\n /** @hidden */\r\n this._generateDepthBuffer = false;\r\n /** @hidden */\r\n this._comparisonFunction = 0;\r\n /** @hidden */\r\n this._sphericalPolynomial = null;\r\n /** @hidden */\r\n this._lodGenerationScale = 0;\r\n /** @hidden */\r\n this._lodGenerationOffset = 0;\r\n // Multiview\r\n /** @hidden */\r\n this._colorTextureArray = null;\r\n /** @hidden */\r\n this._depthStencilTextureArray = null;\r\n // The following three fields helps sharing generated fixed LODs for texture filtering\r\n // In environment not supporting the textureLOD extension like EDGE. They are for internal use only.\r\n // They are at the level of the gl texture to benefit from the cache.\r\n /** @hidden */\r\n this._lodTextureHigh = null;\r\n /** @hidden */\r\n this._lodTextureMid = null;\r\n /** @hidden */\r\n this._lodTextureLow = null;\r\n /** @hidden */\r\n this._isRGBD = false;\r\n /** @hidden */\r\n this._linearSpecularLOD = false;\r\n /** @hidden */\r\n this._irradianceTexture = null;\r\n /** @hidden */\r\n this._webGLTexture = null;\r\n /** @hidden */\r\n this._references = 1;\r\n this._engine = engine;\r\n this._dataSource = dataSource;\r\n if (!delayAllocation) {\r\n this._webGLTexture = engine._createTexture();\r\n }\r\n }\r\n /**\r\n * Gets the Engine the texture belongs to.\r\n * @returns The babylon engine\r\n */\r\n InternalTexture.prototype.getEngine = function () {\r\n return this._engine;\r\n };\r\n Object.defineProperty(InternalTexture.prototype, \"dataSource\", {\r\n /**\r\n * Gets the data source type of the texture (can be one of the InternalTexture.DATASOURCE_XXXX)\r\n */\r\n get: function () {\r\n return this._dataSource;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Increments the number of references (ie. the number of Texture that point to it)\r\n */\r\n InternalTexture.prototype.incrementReferences = function () {\r\n this._references++;\r\n };\r\n /**\r\n * Change the size of the texture (not the size of the content)\r\n * @param width defines the new width\r\n * @param height defines the new height\r\n * @param depth defines the new depth (1 by default)\r\n */\r\n InternalTexture.prototype.updateSize = function (width, height, depth) {\r\n if (depth === void 0) { depth = 1; }\r\n this.width = width;\r\n this.height = height;\r\n this.depth = depth;\r\n this.baseWidth = width;\r\n this.baseHeight = height;\r\n this.baseDepth = depth;\r\n this._size = width * height * depth;\r\n };\r\n /** @hidden */\r\n InternalTexture.prototype._rebuild = function () {\r\n var _this = this;\r\n var proxy;\r\n this.isReady = false;\r\n this._cachedCoordinatesMode = null;\r\n this._cachedWrapU = null;\r\n this._cachedWrapV = null;\r\n this._cachedAnisotropicFilteringLevel = null;\r\n switch (this._dataSource) {\r\n case InternalTexture.DATASOURCE_TEMP:\r\n return;\r\n case InternalTexture.DATASOURCE_URL:\r\n proxy = this._engine.createTexture(this.url, !this.generateMipMaps, this.invertY, null, this.samplingMode, function () {\r\n proxy._swapAndDie(_this);\r\n _this.isReady = true;\r\n }, null, this._buffer, undefined, this.format);\r\n return;\r\n case InternalTexture.DATASOURCE_RAW:\r\n proxy = this._engine.createRawTexture(this._bufferView, this.baseWidth, this.baseHeight, this.format, this.generateMipMaps, this.invertY, this.samplingMode, this._compression);\r\n proxy._swapAndDie(this);\r\n this.isReady = true;\r\n return;\r\n case InternalTexture.DATASOURCE_RAW3D:\r\n proxy = this._engine.createRawTexture3D(this._bufferView, this.baseWidth, this.baseHeight, this.baseDepth, this.format, this.generateMipMaps, this.invertY, this.samplingMode, this._compression);\r\n proxy._swapAndDie(this);\r\n this.isReady = true;\r\n return;\r\n case InternalTexture.DATASOURCE_DYNAMIC:\r\n proxy = this._engine.createDynamicTexture(this.baseWidth, this.baseHeight, this.generateMipMaps, this.samplingMode);\r\n proxy._swapAndDie(this);\r\n this._engine.updateDynamicTexture(this, this._engine.getRenderingCanvas(), this.invertY, undefined, undefined, true);\r\n // The engine will make sure to update content so no need to flag it as isReady = true\r\n return;\r\n case InternalTexture.DATASOURCE_RENDERTARGET:\r\n var options = new RenderTargetCreationOptions();\r\n options.generateDepthBuffer = this._generateDepthBuffer;\r\n options.generateMipMaps = this.generateMipMaps;\r\n options.generateStencilBuffer = this._generateStencilBuffer;\r\n options.samplingMode = this.samplingMode;\r\n options.type = this.type;\r\n if (this.isCube) {\r\n proxy = this._engine.createRenderTargetCubeTexture(this.width, options);\r\n }\r\n else {\r\n var size = {\r\n width: this.width,\r\n height: this.height\r\n };\r\n proxy = this._engine.createRenderTargetTexture(size, options);\r\n }\r\n proxy._swapAndDie(this);\r\n this.isReady = true;\r\n return;\r\n case InternalTexture.DATASOURCE_DEPTHTEXTURE:\r\n var depthTextureOptions = {\r\n bilinearFiltering: this.samplingMode !== Constants.TEXTURE_BILINEAR_SAMPLINGMODE,\r\n comparisonFunction: this._comparisonFunction,\r\n generateStencil: this._generateStencilBuffer,\r\n isCube: this.isCube\r\n };\r\n proxy = this._engine.createDepthStencilTexture({ width: this.width, height: this.height }, depthTextureOptions);\r\n proxy._swapAndDie(this);\r\n this.isReady = true;\r\n return;\r\n case InternalTexture.DATASOURCE_CUBE:\r\n proxy = this._engine.createCubeTexture(this.url, null, this._files, !this.generateMipMaps, function () {\r\n proxy._swapAndDie(_this);\r\n _this.isReady = true;\r\n }, null, this.format, this._extension);\r\n return;\r\n case InternalTexture.DATASOURCE_CUBERAW:\r\n proxy = this._engine.createRawCubeTexture(this._bufferViewArray, this.width, this.format, this.type, this.generateMipMaps, this.invertY, this.samplingMode, this._compression);\r\n proxy._swapAndDie(this);\r\n this.isReady = true;\r\n return;\r\n case InternalTexture.DATASOURCE_CUBERAW_RGBD:\r\n proxy = this._engine.createRawCubeTexture(null, this.width, this.format, this.type, this.generateMipMaps, this.invertY, this.samplingMode, this._compression);\r\n InternalTexture._UpdateRGBDAsync(proxy, this._bufferViewArrayArray, this._sphericalPolynomial, this._lodGenerationScale, this._lodGenerationOffset).then(function () {\r\n proxy._swapAndDie(_this);\r\n _this.isReady = true;\r\n });\r\n return;\r\n case InternalTexture.DATASOURCE_CUBEPREFILTERED:\r\n proxy = this._engine.createPrefilteredCubeTexture(this.url, null, this._lodGenerationScale, this._lodGenerationOffset, function (proxy) {\r\n if (proxy) {\r\n proxy._swapAndDie(_this);\r\n }\r\n _this.isReady = true;\r\n }, null, this.format, this._extension);\r\n proxy._sphericalPolynomial = this._sphericalPolynomial;\r\n return;\r\n }\r\n };\r\n /** @hidden */\r\n InternalTexture.prototype._swapAndDie = function (target) {\r\n target._webGLTexture = this._webGLTexture;\r\n target._isRGBD = this._isRGBD;\r\n if (this._framebuffer) {\r\n target._framebuffer = this._framebuffer;\r\n }\r\n if (this._depthStencilBuffer) {\r\n target._depthStencilBuffer = this._depthStencilBuffer;\r\n }\r\n if (this._lodTextureHigh) {\r\n if (target._lodTextureHigh) {\r\n target._lodTextureHigh.dispose();\r\n }\r\n target._lodTextureHigh = this._lodTextureHigh;\r\n }\r\n if (this._lodTextureMid) {\r\n if (target._lodTextureMid) {\r\n target._lodTextureMid.dispose();\r\n }\r\n target._lodTextureMid = this._lodTextureMid;\r\n }\r\n if (this._lodTextureLow) {\r\n if (target._lodTextureLow) {\r\n target._lodTextureLow.dispose();\r\n }\r\n target._lodTextureLow = this._lodTextureLow;\r\n }\r\n if (this._irradianceTexture) {\r\n if (target._irradianceTexture) {\r\n target._irradianceTexture.dispose();\r\n }\r\n target._irradianceTexture = this._irradianceTexture;\r\n }\r\n var cache = this._engine.getLoadedTexturesCache();\r\n var index = cache.indexOf(this);\r\n if (index !== -1) {\r\n cache.splice(index, 1);\r\n }\r\n var index = cache.indexOf(target);\r\n if (index === -1) {\r\n cache.push(target);\r\n }\r\n };\r\n /**\r\n * Dispose the current allocated resources\r\n */\r\n InternalTexture.prototype.dispose = function () {\r\n if (!this._webGLTexture) {\r\n return;\r\n }\r\n this._references--;\r\n if (this._references === 0) {\r\n this._engine._releaseTexture(this);\r\n this._webGLTexture = null;\r\n }\r\n };\r\n /** @hidden */\r\n InternalTexture._UpdateRGBDAsync = function (internalTexture, data, sphericalPolynomial, lodScale, lodOffset) {\r\n throw _DevTools.WarnImport(\"environmentTextureTools\");\r\n };\r\n /**\r\n * The source of the texture data is unknown\r\n */\r\n InternalTexture.DATASOURCE_UNKNOWN = 0;\r\n /**\r\n * Texture data comes from an URL\r\n */\r\n InternalTexture.DATASOURCE_URL = 1;\r\n /**\r\n * Texture data is only used for temporary storage\r\n */\r\n InternalTexture.DATASOURCE_TEMP = 2;\r\n /**\r\n * Texture data comes from raw data (ArrayBuffer)\r\n */\r\n InternalTexture.DATASOURCE_RAW = 3;\r\n /**\r\n * Texture content is dynamic (video or dynamic texture)\r\n */\r\n InternalTexture.DATASOURCE_DYNAMIC = 4;\r\n /**\r\n * Texture content is generated by rendering to it\r\n */\r\n InternalTexture.DATASOURCE_RENDERTARGET = 5;\r\n /**\r\n * Texture content is part of a multi render target process\r\n */\r\n InternalTexture.DATASOURCE_MULTIRENDERTARGET = 6;\r\n /**\r\n * Texture data comes from a cube data file\r\n */\r\n InternalTexture.DATASOURCE_CUBE = 7;\r\n /**\r\n * Texture data comes from a raw cube data\r\n */\r\n InternalTexture.DATASOURCE_CUBERAW = 8;\r\n /**\r\n * Texture data come from a prefiltered cube data file\r\n */\r\n InternalTexture.DATASOURCE_CUBEPREFILTERED = 9;\r\n /**\r\n * Texture content is raw 3D data\r\n */\r\n InternalTexture.DATASOURCE_RAW3D = 10;\r\n /**\r\n * Texture content is a depth texture\r\n */\r\n InternalTexture.DATASOURCE_DEPTHTEXTURE = 11;\r\n /**\r\n * Texture data comes from a raw cube data encoded with RGBD\r\n */\r\n InternalTexture.DATASOURCE_CUBERAW_RGBD = 12;\r\n return InternalTexture;\r\n}());\r\nexport { InternalTexture };\r\n//# sourceMappingURL=internalTexture.js.map"
  3164. },
  3165. {
  3166. "id": "../../.temp/packageES6Dev/core/Materials/Textures/renderTargetCreationOptions.js",
  3167. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\Textures\\renderTargetCreationOptions.js",
  3168. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/renderTargetCreationOptions.js",
  3169. "index": 33,
  3170. "index2": 30,
  3171. "size": 329,
  3172. "cacheable": true,
  3173. "built": true,
  3174. "optional": false,
  3175. "prefetched": false,
  3176. "chunks": [
  3177. "thinEngineOnly"
  3178. ],
  3179. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\Textures\\internalTexture.js",
  3180. "issuerId": "../../.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  3181. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  3182. "issuerPath": [
  3183. {
  3184. "id": "./thinEngineOnly.ts",
  3185. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  3186. "name": "./thinEngineOnly.ts",
  3187. "profile": {
  3188. "factory": 42,
  3189. "building": 2115
  3190. }
  3191. },
  3192. {
  3193. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3194. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3195. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3196. "profile": {
  3197. "factory": 6,
  3198. "building": 110
  3199. }
  3200. },
  3201. {
  3202. "id": "../../.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  3203. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\Textures\\internalTexture.js",
  3204. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  3205. "profile": {
  3206. "factory": 59,
  3207. "building": 41,
  3208. "dependencies": 4
  3209. }
  3210. }
  3211. ],
  3212. "profile": {
  3213. "factory": 43,
  3214. "building": 9
  3215. },
  3216. "failed": false,
  3217. "errors": 0,
  3218. "warnings": 0,
  3219. "assets": [],
  3220. "reasons": [
  3221. {
  3222. "moduleId": "../../.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  3223. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\Textures\\internalTexture.js",
  3224. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  3225. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  3226. "type": "harmony side effect evaluation",
  3227. "userRequest": "../../Materials/Textures/renderTargetCreationOptions",
  3228. "loc": "2:0-99"
  3229. },
  3230. {
  3231. "moduleId": "../../.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  3232. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\Textures\\internalTexture.js",
  3233. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  3234. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  3235. "type": "harmony import specifier",
  3236. "userRequest": "../../Materials/Textures/renderTargetCreationOptions",
  3237. "loc": "255:34-61"
  3238. }
  3239. ],
  3240. "providedExports": [
  3241. "RenderTargetCreationOptions"
  3242. ],
  3243. "optimizationBailout": [],
  3244. "depth": 3,
  3245. "source": "/**\r\n * Define options used to create a render target texture\r\n */\r\nvar RenderTargetCreationOptions = /** @class */ (function () {\r\n function RenderTargetCreationOptions() {\r\n }\r\n return RenderTargetCreationOptions;\r\n}());\r\nexport { RenderTargetCreationOptions };\r\n//# sourceMappingURL=renderTargetCreationOptions.js.map"
  3246. },
  3247. {
  3248. "id": "../../.temp/packageES6Dev/core/Materials/effect.js",
  3249. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  3250. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  3251. "index": 4,
  3252. "index2": 22,
  3253. "size": 50320,
  3254. "cacheable": true,
  3255. "built": true,
  3256. "optional": false,
  3257. "prefetched": false,
  3258. "chunks": [
  3259. "thinEngineOnly"
  3260. ],
  3261. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3262. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3263. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3264. "issuerPath": [
  3265. {
  3266. "id": "./thinEngineOnly.ts",
  3267. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  3268. "name": "./thinEngineOnly.ts",
  3269. "profile": {
  3270. "factory": 42,
  3271. "building": 2115
  3272. }
  3273. },
  3274. {
  3275. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3276. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3277. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3278. "profile": {
  3279. "factory": 6,
  3280. "building": 110
  3281. }
  3282. }
  3283. ],
  3284. "profile": {
  3285. "factory": 59,
  3286. "building": 41,
  3287. "dependencies": 4
  3288. },
  3289. "failed": false,
  3290. "errors": 0,
  3291. "warnings": 0,
  3292. "assets": [],
  3293. "reasons": [
  3294. {
  3295. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3296. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3297. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3298. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3299. "type": "harmony side effect evaluation",
  3300. "userRequest": "../Materials/effect",
  3301. "loc": "3:0-45"
  3302. },
  3303. {
  3304. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3305. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3306. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3307. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3308. "type": "harmony import specifier",
  3309. "userRequest": "../Materials/effect",
  3310. "loc": "349:19-25"
  3311. },
  3312. {
  3313. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3314. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3315. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3316. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3317. "type": "harmony import specifier",
  3318. "userRequest": "../Materials/effect",
  3319. "loc": "352:12-18"
  3320. },
  3321. {
  3322. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3323. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3324. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3325. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3326. "type": "harmony import specifier",
  3327. "userRequest": "../Materials/effect",
  3328. "loc": "491:8-14"
  3329. },
  3330. {
  3331. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3332. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3333. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3334. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3335. "type": "harmony import specifier",
  3336. "userRequest": "../Materials/effect",
  3337. "loc": "1697:25-31"
  3338. },
  3339. {
  3340. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3341. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3342. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3343. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3344. "type": "harmony import specifier",
  3345. "userRequest": "../Materials/effect",
  3346. "loc": "3343:8-14"
  3347. }
  3348. ],
  3349. "providedExports": [
  3350. "EffectFallbacks",
  3351. "EffectCreationOptions",
  3352. "Effect"
  3353. ],
  3354. "optimizationBailout": [],
  3355. "depth": 2,
  3356. "source": "import { Observable } from \"../Misc/observable\";\r\nimport { Constants } from \"../Engines/constants\";\r\nimport { DomManagement } from \"../Misc/domManagement\";\r\nimport { Logger } from \"../Misc/logger\";\r\nimport { ShaderProcessor } from '../Engines/Processors/shaderProcessor';\r\n/**\r\n * EffectFallbacks can be used to add fallbacks (properties to disable) to certain properties when desired to improve performance.\r\n * (Eg. Start at high quality with reflection and fog, if fps is low, remove reflection, if still low remove fog)\r\n */\r\nvar EffectFallbacks = /** @class */ (function () {\r\n function EffectFallbacks() {\r\n this._defines = {};\r\n this._currentRank = 32;\r\n this._maxRank = -1;\r\n this._mesh = null;\r\n }\r\n /**\r\n * Removes the fallback from the bound mesh.\r\n */\r\n EffectFallbacks.prototype.unBindMesh = function () {\r\n this._mesh = null;\r\n };\r\n /**\r\n * Adds a fallback on the specified property.\r\n * @param rank The rank of the fallback (Lower ranks will be fallbacked to first)\r\n * @param define The name of the define in the shader\r\n */\r\n EffectFallbacks.prototype.addFallback = function (rank, define) {\r\n if (!this._defines[rank]) {\r\n if (rank < this._currentRank) {\r\n this._currentRank = rank;\r\n }\r\n if (rank > this._maxRank) {\r\n this._maxRank = rank;\r\n }\r\n this._defines[rank] = new Array();\r\n }\r\n this._defines[rank].push(define);\r\n };\r\n /**\r\n * Sets the mesh to use CPU skinning when needing to fallback.\r\n * @param rank The rank of the fallback (Lower ranks will be fallbacked to first)\r\n * @param mesh The mesh to use the fallbacks.\r\n */\r\n EffectFallbacks.prototype.addCPUSkinningFallback = function (rank, mesh) {\r\n this._mesh = mesh;\r\n if (rank < this._currentRank) {\r\n this._currentRank = rank;\r\n }\r\n if (rank > this._maxRank) {\r\n this._maxRank = rank;\r\n }\r\n };\r\n Object.defineProperty(EffectFallbacks.prototype, \"hasMoreFallbacks\", {\r\n /**\r\n * Checks to see if more fallbacks are still availible.\r\n */\r\n get: function () {\r\n return this._currentRank <= this._maxRank;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Removes the defines that should be removed when falling back.\r\n * @param currentDefines defines the current define statements for the shader.\r\n * @param effect defines the current effect we try to compile\r\n * @returns The resulting defines with defines of the current rank removed.\r\n */\r\n EffectFallbacks.prototype.reduce = function (currentDefines, effect) {\r\n // First we try to switch to CPU skinning\r\n if (this._mesh && this._mesh.computeBonesUsingShaders && this._mesh.numBoneInfluencers > 0) {\r\n this._mesh.computeBonesUsingShaders = false;\r\n currentDefines = currentDefines.replace(\"#define NUM_BONE_INFLUENCERS \" + this._mesh.numBoneInfluencers, \"#define NUM_BONE_INFLUENCERS 0\");\r\n effect._bonesComputationForcedToCPU = true;\r\n var scene = this._mesh.getScene();\r\n for (var index = 0; index < scene.meshes.length; index++) {\r\n var otherMesh = scene.meshes[index];\r\n if (!otherMesh.material) {\r\n if (!this._mesh.material && otherMesh.computeBonesUsingShaders && otherMesh.numBoneInfluencers > 0) {\r\n otherMesh.computeBonesUsingShaders = false;\r\n }\r\n continue;\r\n }\r\n if (!otherMesh.computeBonesUsingShaders || otherMesh.numBoneInfluencers === 0) {\r\n continue;\r\n }\r\n if (otherMesh.material.getEffect() === effect) {\r\n otherMesh.computeBonesUsingShaders = false;\r\n }\r\n else if (otherMesh.subMeshes) {\r\n for (var _i = 0, _a = otherMesh.subMeshes; _i < _a.length; _i++) {\r\n var subMesh = _a[_i];\r\n var subMeshEffect = subMesh.effect;\r\n if (subMeshEffect === effect) {\r\n otherMesh.computeBonesUsingShaders = false;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n var currentFallbacks = this._defines[this._currentRank];\r\n if (currentFallbacks) {\r\n for (var index = 0; index < currentFallbacks.length; index++) {\r\n currentDefines = currentDefines.replace(\"#define \" + currentFallbacks[index], \"\");\r\n }\r\n }\r\n this._currentRank++;\r\n }\r\n return currentDefines;\r\n };\r\n return EffectFallbacks;\r\n}());\r\nexport { EffectFallbacks };\r\n/**\r\n * Options to be used when creating an effect.\r\n */\r\nvar EffectCreationOptions = /** @class */ (function () {\r\n function EffectCreationOptions() {\r\n }\r\n return EffectCreationOptions;\r\n}());\r\nexport { EffectCreationOptions };\r\n/**\r\n * Effect containing vertex and fragment shader that can be executed on an object.\r\n */\r\nvar Effect = /** @class */ (function () {\r\n /**\r\n * Instantiates an effect.\r\n * An effect can be used to create/manage/execute vertex and fragment shaders.\r\n * @param baseName Name of the effect.\r\n * @param attributesNamesOrOptions List of attribute names that will be passed to the shader or set of all options to create the effect.\r\n * @param uniformsNamesOrEngine List of uniform variable names that will be passed to the shader or the engine that will be used to render effect.\r\n * @param samplers List of sampler variables that will be passed to the shader.\r\n * @param engine Engine to be used to render the effect\r\n * @param defines Define statements to be added to the shader.\r\n * @param fallbacks Possible fallbacks for this effect to improve performance when needed.\r\n * @param onCompiled Callback that will be called when the shader is compiled.\r\n * @param onError Callback that will be called if an error occurs during shader compilation.\r\n * @param indexParameters Parameters to be used with Babylons include syntax to iterate over an array (eg. {lights: 10})\r\n */\r\n function Effect(baseName, attributesNamesOrOptions, uniformsNamesOrEngine, samplers, engine, defines, fallbacks, onCompiled, onError, indexParameters) {\r\n var _this = this;\r\n if (samplers === void 0) { samplers = null; }\r\n if (defines === void 0) { defines = null; }\r\n if (fallbacks === void 0) { fallbacks = null; }\r\n if (onCompiled === void 0) { onCompiled = null; }\r\n if (onError === void 0) { onError = null; }\r\n /**\r\n * Name of the effect.\r\n */\r\n this.name = null;\r\n /**\r\n * String container all the define statements that should be set on the shader.\r\n */\r\n this.defines = \"\";\r\n /**\r\n * Callback that will be called when the shader is compiled.\r\n */\r\n this.onCompiled = null;\r\n /**\r\n * Callback that will be called if an error occurs during shader compilation.\r\n */\r\n this.onError = null;\r\n /**\r\n * Callback that will be called when effect is bound.\r\n */\r\n this.onBind = null;\r\n /**\r\n * Unique ID of the effect.\r\n */\r\n this.uniqueId = 0;\r\n /**\r\n * Observable that will be called when the shader is compiled.\r\n * It is recommended to use executeWhenCompile() or to make sure that scene.isReady() is called to get this observable raised.\r\n */\r\n this.onCompileObservable = new Observable();\r\n /**\r\n * Observable that will be called if an error occurs during shader compilation.\r\n */\r\n this.onErrorObservable = new Observable();\r\n /** @hidden */\r\n this._onBindObservable = null;\r\n /** @hidden */\r\n this._bonesComputationForcedToCPU = false;\r\n this._uniformBuffersNames = {};\r\n this._samplers = {};\r\n this._isReady = false;\r\n this._compilationError = \"\";\r\n this._uniforms = {};\r\n /**\r\n * Key for the effect.\r\n * @hidden\r\n */\r\n this._key = \"\";\r\n this._fallbacks = null;\r\n this._vertexSourceCode = \"\";\r\n this._fragmentSourceCode = \"\";\r\n this._vertexSourceCodeOverride = \"\";\r\n this._fragmentSourceCodeOverride = \"\";\r\n this._transformFeedbackVaryings = null;\r\n /**\r\n * Compiled shader to webGL program.\r\n * @hidden\r\n */\r\n this._pipelineContext = null;\r\n this._valueCache = {};\r\n this.name = baseName;\r\n if (attributesNamesOrOptions.attributes) {\r\n var options = attributesNamesOrOptions;\r\n this._engine = uniformsNamesOrEngine;\r\n this._attributesNames = options.attributes;\r\n this._uniformsNames = options.uniformsNames.concat(options.samplers);\r\n this._samplerList = options.samplers.slice();\r\n this.defines = options.defines;\r\n this.onError = options.onError;\r\n this.onCompiled = options.onCompiled;\r\n this._fallbacks = options.fallbacks;\r\n this._indexParameters = options.indexParameters;\r\n this._transformFeedbackVaryings = options.transformFeedbackVaryings;\r\n if (options.uniformBuffersNames) {\r\n for (var i = 0; i < options.uniformBuffersNames.length; i++) {\r\n this._uniformBuffersNames[options.uniformBuffersNames[i]] = i;\r\n }\r\n }\r\n }\r\n else {\r\n this._engine = engine;\r\n this.defines = (defines == null ? \"\" : defines);\r\n this._uniformsNames = uniformsNamesOrEngine.concat(samplers);\r\n this._samplerList = samplers ? samplers.slice() : [];\r\n this._attributesNames = attributesNamesOrOptions;\r\n this.onError = onError;\r\n this.onCompiled = onCompiled;\r\n this._indexParameters = indexParameters;\r\n this._fallbacks = fallbacks;\r\n }\r\n this.uniqueId = Effect._uniqueIdSeed++;\r\n var vertexSource;\r\n var fragmentSource;\r\n if (baseName.vertexSource) {\r\n vertexSource = \"source:\" + baseName.vertexSource;\r\n }\r\n else if (baseName.vertexElement) {\r\n vertexSource = document.getElementById(baseName.vertexElement);\r\n if (!vertexSource) {\r\n vertexSource = baseName.vertexElement;\r\n }\r\n }\r\n else {\r\n vertexSource = baseName.vertex || baseName;\r\n }\r\n if (baseName.fragmentSource) {\r\n fragmentSource = \"source:\" + baseName.fragmentSource;\r\n }\r\n else if (baseName.fragmentElement) {\r\n fragmentSource = document.getElementById(baseName.fragmentElement);\r\n if (!fragmentSource) {\r\n fragmentSource = baseName.fragmentElement;\r\n }\r\n }\r\n else {\r\n fragmentSource = baseName.fragment || baseName;\r\n }\r\n var processorOptions = {\r\n defines: this.defines.split(\"\\n\"),\r\n indexParameters: this._indexParameters,\r\n isFragment: false,\r\n shouldUseHighPrecisionShader: this._engine._shouldUseHighPrecisionShader,\r\n processor: this._engine._shaderProcessor,\r\n supportsUniformBuffers: this._engine.supportsUniformBuffers,\r\n shadersRepository: Effect.ShadersRepository,\r\n includesShadersStore: Effect.IncludesShadersStore,\r\n version: (this._engine.webGLVersion * 100).toString(),\r\n platformName: this._engine.webGLVersion >= 2 ? \"WEBGL2\" : \"WEBGL1\"\r\n };\r\n this._loadVertexShader(vertexSource, function (vertexCode) {\r\n _this._loadFragmentShader(fragmentSource, function (fragmentCode) {\r\n ShaderProcessor.Process(vertexCode, processorOptions, function (migratedVertexCode) {\r\n processorOptions.isFragment = true;\r\n ShaderProcessor.Process(fragmentCode, processorOptions, function (migratedFragmentCode) {\r\n _this._useFinalCode(migratedVertexCode, migratedFragmentCode, baseName);\r\n });\r\n });\r\n });\r\n });\r\n }\r\n Object.defineProperty(Effect.prototype, \"onBindObservable\", {\r\n /**\r\n * Observable that will be called when effect is bound.\r\n */\r\n get: function () {\r\n if (!this._onBindObservable) {\r\n this._onBindObservable = new Observable();\r\n }\r\n return this._onBindObservable;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Effect.prototype._useFinalCode = function (migratedVertexCode, migratedFragmentCode, baseName) {\r\n if (baseName) {\r\n var vertex = baseName.vertexElement || baseName.vertex || baseName.spectorName || baseName;\r\n var fragment = baseName.fragmentElement || baseName.fragment || baseName.spectorName || baseName;\r\n this._vertexSourceCode = \"#define SHADER_NAME vertex:\" + vertex + \"\\n\" + migratedVertexCode;\r\n this._fragmentSourceCode = \"#define SHADER_NAME fragment:\" + fragment + \"\\n\" + migratedFragmentCode;\r\n }\r\n else {\r\n this._vertexSourceCode = migratedVertexCode;\r\n this._fragmentSourceCode = migratedFragmentCode;\r\n }\r\n this._prepareEffect();\r\n };\r\n Object.defineProperty(Effect.prototype, \"key\", {\r\n /**\r\n * Unique key for this effect\r\n */\r\n get: function () {\r\n return this._key;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * If the effect has been compiled and prepared.\r\n * @returns if the effect is compiled and prepared.\r\n */\r\n Effect.prototype.isReady = function () {\r\n try {\r\n return this._isReadyInternal();\r\n }\r\n catch (_a) {\r\n return false;\r\n }\r\n };\r\n Effect.prototype._isReadyInternal = function () {\r\n if (this._isReady) {\r\n return true;\r\n }\r\n if (this._pipelineContext) {\r\n return this._pipelineContext.isReady;\r\n }\r\n return false;\r\n };\r\n /**\r\n * The engine the effect was initialized with.\r\n * @returns the engine.\r\n */\r\n Effect.prototype.getEngine = function () {\r\n return this._engine;\r\n };\r\n /**\r\n * The pipeline context for this effect\r\n * @returns the associated pipeline context\r\n */\r\n Effect.prototype.getPipelineContext = function () {\r\n return this._pipelineContext;\r\n };\r\n /**\r\n * The set of names of attribute variables for the shader.\r\n * @returns An array of attribute names.\r\n */\r\n Effect.prototype.getAttributesNames = function () {\r\n return this._attributesNames;\r\n };\r\n /**\r\n * Returns the attribute at the given index.\r\n * @param index The index of the attribute.\r\n * @returns The location of the attribute.\r\n */\r\n Effect.prototype.getAttributeLocation = function (index) {\r\n return this._attributes[index];\r\n };\r\n /**\r\n * Returns the attribute based on the name of the variable.\r\n * @param name of the attribute to look up.\r\n * @returns the attribute location.\r\n */\r\n Effect.prototype.getAttributeLocationByName = function (name) {\r\n var index = this._attributesNames.indexOf(name);\r\n return this._attributes[index];\r\n };\r\n /**\r\n * The number of attributes.\r\n * @returns the numnber of attributes.\r\n */\r\n Effect.prototype.getAttributesCount = function () {\r\n return this._attributes.length;\r\n };\r\n /**\r\n * Gets the index of a uniform variable.\r\n * @param uniformName of the uniform to look up.\r\n * @returns the index.\r\n */\r\n Effect.prototype.getUniformIndex = function (uniformName) {\r\n return this._uniformsNames.indexOf(uniformName);\r\n };\r\n /**\r\n * Returns the attribute based on the name of the variable.\r\n * @param uniformName of the uniform to look up.\r\n * @returns the location of the uniform.\r\n */\r\n Effect.prototype.getUniform = function (uniformName) {\r\n return this._uniforms[uniformName];\r\n };\r\n /**\r\n * Returns an array of sampler variable names\r\n * @returns The array of sampler variable neames.\r\n */\r\n Effect.prototype.getSamplers = function () {\r\n return this._samplerList;\r\n };\r\n /**\r\n * The error from the last compilation.\r\n * @returns the error string.\r\n */\r\n Effect.prototype.getCompilationError = function () {\r\n return this._compilationError;\r\n };\r\n /**\r\n * Adds a callback to the onCompiled observable and call the callback imediatly if already ready.\r\n * @param func The callback to be used.\r\n */\r\n Effect.prototype.executeWhenCompiled = function (func) {\r\n var _this = this;\r\n if (this.isReady()) {\r\n func(this);\r\n return;\r\n }\r\n this.onCompileObservable.add(function (effect) {\r\n func(effect);\r\n });\r\n if (!this._pipelineContext || this._pipelineContext.isAsync) {\r\n setTimeout(function () {\r\n _this._checkIsReady();\r\n }, 16);\r\n }\r\n };\r\n Effect.prototype._checkIsReady = function () {\r\n var _this = this;\r\n try {\r\n if (this._isReadyInternal()) {\r\n return;\r\n }\r\n }\r\n catch (e) {\r\n this._processCompilationErrors(e);\r\n return;\r\n }\r\n setTimeout(function () {\r\n _this._checkIsReady();\r\n }, 16);\r\n };\r\n /** @hidden */\r\n Effect.prototype._loadVertexShader = function (vertex, callback) {\r\n if (typeof (HTMLElement) !== \"undefined\") {\r\n // DOM element ?\r\n if (vertex instanceof HTMLElement) {\r\n var vertexCode = DomManagement.GetDOMTextContent(vertex);\r\n callback(vertexCode);\r\n return;\r\n }\r\n }\r\n // Direct source ?\r\n if (vertex.substr(0, 7) === \"source:\") {\r\n callback(vertex.substr(7));\r\n return;\r\n }\r\n // Base64 encoded ?\r\n if (vertex.substr(0, 7) === \"base64:\") {\r\n var vertexBinary = window.atob(vertex.substr(7));\r\n callback(vertexBinary);\r\n return;\r\n }\r\n // Is in local store ?\r\n if (Effect.ShadersStore[vertex + \"VertexShader\"]) {\r\n callback(Effect.ShadersStore[vertex + \"VertexShader\"]);\r\n return;\r\n }\r\n var vertexShaderUrl;\r\n if (vertex[0] === \".\" || vertex[0] === \"/\" || vertex.indexOf(\"http\") > -1) {\r\n vertexShaderUrl = vertex;\r\n }\r\n else {\r\n vertexShaderUrl = Effect.ShadersRepository + vertex;\r\n }\r\n // Vertex shader\r\n this._engine._loadFile(vertexShaderUrl + \".vertex.fx\", callback);\r\n };\r\n /** @hidden */\r\n Effect.prototype._loadFragmentShader = function (fragment, callback) {\r\n if (typeof (HTMLElement) !== \"undefined\") {\r\n // DOM element ?\r\n if (fragment instanceof HTMLElement) {\r\n var fragmentCode = DomManagement.GetDOMTextContent(fragment);\r\n callback(fragmentCode);\r\n return;\r\n }\r\n }\r\n // Direct source ?\r\n if (fragment.substr(0, 7) === \"source:\") {\r\n callback(fragment.substr(7));\r\n return;\r\n }\r\n // Base64 encoded ?\r\n if (fragment.substr(0, 7) === \"base64:\") {\r\n var fragmentBinary = window.atob(fragment.substr(7));\r\n callback(fragmentBinary);\r\n return;\r\n }\r\n // Is in local store ?\r\n if (Effect.ShadersStore[fragment + \"PixelShader\"]) {\r\n callback(Effect.ShadersStore[fragment + \"PixelShader\"]);\r\n return;\r\n }\r\n if (Effect.ShadersStore[fragment + \"FragmentShader\"]) {\r\n callback(Effect.ShadersStore[fragment + \"FragmentShader\"]);\r\n return;\r\n }\r\n var fragmentShaderUrl;\r\n if (fragment[0] === \".\" || fragment[0] === \"/\" || fragment.indexOf(\"http\") > -1) {\r\n fragmentShaderUrl = fragment;\r\n }\r\n else {\r\n fragmentShaderUrl = Effect.ShadersRepository + fragment;\r\n }\r\n // Fragment shader\r\n this._engine._loadFile(fragmentShaderUrl + \".fragment.fx\", callback);\r\n };\r\n /** @hidden */\r\n Effect.prototype._dumpShadersSource = function (vertexCode, fragmentCode, defines) {\r\n // Rebuild shaders source code\r\n var shaderVersion = (this._engine.webGLVersion > 1) ? \"#version 300 es\\n#define WEBGL2 \\n\" : \"\";\r\n var prefix = shaderVersion + (defines ? defines + \"\\n\" : \"\");\r\n vertexCode = prefix + vertexCode;\r\n fragmentCode = prefix + fragmentCode;\r\n // Number lines of shaders source code\r\n var i = 2;\r\n var regex = /\\n/gm;\r\n var formattedVertexCode = \"\\n1\\t\" + vertexCode.replace(regex, function () { return \"\\n\" + (i++) + \"\\t\"; });\r\n i = 2;\r\n var formattedFragmentCode = \"\\n1\\t\" + fragmentCode.replace(regex, function () { return \"\\n\" + (i++) + \"\\t\"; });\r\n // Dump shaders name and formatted source code\r\n if (this.name.vertexElement) {\r\n Logger.Error(\"Vertex shader: \" + this.name.vertexElement + formattedVertexCode);\r\n Logger.Error(\"Fragment shader: \" + this.name.fragmentElement + formattedFragmentCode);\r\n }\r\n else if (this.name.vertex) {\r\n Logger.Error(\"Vertex shader: \" + this.name.vertex + formattedVertexCode);\r\n Logger.Error(\"Fragment shader: \" + this.name.fragment + formattedFragmentCode);\r\n }\r\n else {\r\n Logger.Error(\"Vertex shader: \" + this.name + formattedVertexCode);\r\n Logger.Error(\"Fragment shader: \" + this.name + formattedFragmentCode);\r\n }\r\n };\r\n /**\r\n * Recompiles the webGL program\r\n * @param vertexSourceCode The source code for the vertex shader.\r\n * @param fragmentSourceCode The source code for the fragment shader.\r\n * @param onCompiled Callback called when completed.\r\n * @param onError Callback called on error.\r\n * @hidden\r\n */\r\n Effect.prototype._rebuildProgram = function (vertexSourceCode, fragmentSourceCode, onCompiled, onError) {\r\n var _this = this;\r\n this._isReady = false;\r\n this._vertexSourceCodeOverride = vertexSourceCode;\r\n this._fragmentSourceCodeOverride = fragmentSourceCode;\r\n this.onError = function (effect, error) {\r\n if (onError) {\r\n onError(error);\r\n }\r\n };\r\n this.onCompiled = function () {\r\n var scenes = _this.getEngine().scenes;\r\n for (var i = 0; i < scenes.length; i++) {\r\n scenes[i].markAllMaterialsAsDirty(Constants.MATERIAL_AllDirtyFlag);\r\n }\r\n _this._pipelineContext._handlesSpectorRebuildCallback(onCompiled);\r\n };\r\n this._fallbacks = null;\r\n this._prepareEffect();\r\n };\r\n /**\r\n * Prepares the effect\r\n * @hidden\r\n */\r\n Effect.prototype._prepareEffect = function () {\r\n var _this = this;\r\n var attributesNames = this._attributesNames;\r\n var defines = this.defines;\r\n this._valueCache = {};\r\n var previousPipelineContext = this._pipelineContext;\r\n try {\r\n var engine_1 = this._engine;\r\n this._pipelineContext = engine_1.createPipelineContext();\r\n var rebuildRebind = this._rebuildProgram.bind(this);\r\n if (this._vertexSourceCodeOverride && this._fragmentSourceCodeOverride) {\r\n engine_1._preparePipelineContext(this._pipelineContext, this._vertexSourceCodeOverride, this._fragmentSourceCodeOverride, true, rebuildRebind, null, this._transformFeedbackVaryings);\r\n }\r\n else {\r\n engine_1._preparePipelineContext(this._pipelineContext, this._vertexSourceCode, this._fragmentSourceCode, false, rebuildRebind, defines, this._transformFeedbackVaryings);\r\n }\r\n engine_1._executeWhenRenderingStateIsCompiled(this._pipelineContext, function () {\r\n if (engine_1.supportsUniformBuffers) {\r\n for (var name in _this._uniformBuffersNames) {\r\n _this.bindUniformBlock(name, _this._uniformBuffersNames[name]);\r\n }\r\n }\r\n var uniforms = engine_1.getUniforms(_this._pipelineContext, _this._uniformsNames);\r\n uniforms.forEach(function (uniform, index) {\r\n _this._uniforms[_this._uniformsNames[index]] = uniform;\r\n });\r\n _this._attributes = engine_1.getAttributes(_this._pipelineContext, attributesNames);\r\n var index;\r\n for (index = 0; index < _this._samplerList.length; index++) {\r\n var sampler = _this.getUniform(_this._samplerList[index]);\r\n if (sampler == null) {\r\n _this._samplerList.splice(index, 1);\r\n index--;\r\n }\r\n }\r\n _this._samplerList.forEach(function (name, index) {\r\n _this._samplers[name] = index;\r\n });\r\n engine_1.bindSamplers(_this);\r\n _this._compilationError = \"\";\r\n _this._isReady = true;\r\n if (_this.onCompiled) {\r\n _this.onCompiled(_this);\r\n }\r\n _this.onCompileObservable.notifyObservers(_this);\r\n _this.onCompileObservable.clear();\r\n // Unbind mesh reference in fallbacks\r\n if (_this._fallbacks) {\r\n _this._fallbacks.unBindMesh();\r\n }\r\n if (previousPipelineContext) {\r\n _this.getEngine()._deletePipelineContext(previousPipelineContext);\r\n }\r\n });\r\n if (this._pipelineContext.isAsync) {\r\n this._checkIsReady();\r\n }\r\n }\r\n catch (e) {\r\n this._processCompilationErrors(e, previousPipelineContext);\r\n }\r\n };\r\n Effect.prototype._processCompilationErrors = function (e, previousPipelineContext) {\r\n if (previousPipelineContext === void 0) { previousPipelineContext = null; }\r\n this._compilationError = e.message;\r\n var attributesNames = this._attributesNames;\r\n var fallbacks = this._fallbacks;\r\n // Let's go through fallbacks then\r\n Logger.Error(\"Unable to compile effect:\");\r\n Logger.Error(\"Uniforms: \" + this._uniformsNames.map(function (uniform) {\r\n return \" \" + uniform;\r\n }));\r\n Logger.Error(\"Attributes: \" + attributesNames.map(function (attribute) {\r\n return \" \" + attribute;\r\n }));\r\n Logger.Error(\"Defines:\\r\\n\" + this.defines);\r\n Logger.Error(\"Error: \" + this._compilationError);\r\n if (previousPipelineContext) {\r\n this._pipelineContext = previousPipelineContext;\r\n this._isReady = true;\r\n if (this.onError) {\r\n this.onError(this, this._compilationError);\r\n }\r\n this.onErrorObservable.notifyObservers(this);\r\n }\r\n if (fallbacks) {\r\n this._pipelineContext = null;\r\n if (fallbacks.hasMoreFallbacks) {\r\n Logger.Error(\"Trying next fallback.\");\r\n this.defines = fallbacks.reduce(this.defines, this);\r\n this._prepareEffect();\r\n }\r\n else { // Sorry we did everything we can\r\n if (this.onError) {\r\n this.onError(this, this._compilationError);\r\n }\r\n this.onErrorObservable.notifyObservers(this);\r\n this.onErrorObservable.clear();\r\n // Unbind mesh reference in fallbacks\r\n if (this._fallbacks) {\r\n this._fallbacks.unBindMesh();\r\n }\r\n }\r\n }\r\n };\r\n Object.defineProperty(Effect.prototype, \"isSupported\", {\r\n /**\r\n * Checks if the effect is supported. (Must be called after compilation)\r\n */\r\n get: function () {\r\n return this._compilationError === \"\";\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Binds a texture to the engine to be used as output of the shader.\r\n * @param channel Name of the output variable.\r\n * @param texture Texture to bind.\r\n * @hidden\r\n */\r\n Effect.prototype._bindTexture = function (channel, texture) {\r\n this._engine._bindTexture(this._samplers[channel], texture);\r\n };\r\n /**\r\n * Sets a texture on the engine to be used in the shader.\r\n * @param channel Name of the sampler variable.\r\n * @param texture Texture to set.\r\n */\r\n Effect.prototype.setTexture = function (channel, texture) {\r\n this._engine.setTexture(this._samplers[channel], this._uniforms[channel], texture);\r\n };\r\n /**\r\n * Sets a depth stencil texture from a render target on the engine to be used in the shader.\r\n * @param channel Name of the sampler variable.\r\n * @param texture Texture to set.\r\n */\r\n Effect.prototype.setDepthStencilTexture = function (channel, texture) {\r\n this._engine.setDepthStencilTexture(this._samplers[channel], this._uniforms[channel], texture);\r\n };\r\n /**\r\n * Sets an array of textures on the engine to be used in the shader.\r\n * @param channel Name of the variable.\r\n * @param textures Textures to set.\r\n */\r\n Effect.prototype.setTextureArray = function (channel, textures) {\r\n var exName = channel + \"Ex\";\r\n if (this._samplerList.indexOf(exName + \"0\") === -1) {\r\n var initialPos = this._samplerList.indexOf(channel);\r\n for (var index = 1; index < textures.length; index++) {\r\n var currentExName = exName + (index - 1).toString();\r\n this._samplerList.splice(initialPos + index, 0, currentExName);\r\n }\r\n // Reset every channels\r\n var channelIndex = 0;\r\n for (var _i = 0, _a = this._samplerList; _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n this._samplers[key] = channelIndex;\r\n channelIndex += 1;\r\n }\r\n }\r\n this._engine.setTextureArray(this._samplers[channel], this._uniforms[channel], textures);\r\n };\r\n /**\r\n * Sets a texture to be the input of the specified post process. (To use the output, pass in the next post process in the pipeline)\r\n * @param channel Name of the sampler variable.\r\n * @param postProcess Post process to get the input texture from.\r\n */\r\n Effect.prototype.setTextureFromPostProcess = function (channel, postProcess) {\r\n this._engine.setTextureFromPostProcess(this._samplers[channel], postProcess);\r\n };\r\n /**\r\n * (Warning! setTextureFromPostProcessOutput may be desired instead)\r\n * Sets the input texture of the passed in post process to be input of this effect. (To use the output of the passed in post process use setTextureFromPostProcessOutput)\r\n * @param channel Name of the sampler variable.\r\n * @param postProcess Post process to get the output texture from.\r\n */\r\n Effect.prototype.setTextureFromPostProcessOutput = function (channel, postProcess) {\r\n this._engine.setTextureFromPostProcessOutput(this._samplers[channel], postProcess);\r\n };\r\n /** @hidden */\r\n Effect.prototype._cacheMatrix = function (uniformName, matrix) {\r\n var cache = this._valueCache[uniformName];\r\n var flag = matrix.updateFlag;\r\n if (cache !== undefined && cache === flag) {\r\n return false;\r\n }\r\n this._valueCache[uniformName] = flag;\r\n return true;\r\n };\r\n /** @hidden */\r\n Effect.prototype._cacheFloat2 = function (uniformName, x, y) {\r\n var cache = this._valueCache[uniformName];\r\n if (!cache) {\r\n cache = [x, y];\r\n this._valueCache[uniformName] = cache;\r\n return true;\r\n }\r\n var changed = false;\r\n if (cache[0] !== x) {\r\n cache[0] = x;\r\n changed = true;\r\n }\r\n if (cache[1] !== y) {\r\n cache[1] = y;\r\n changed = true;\r\n }\r\n return changed;\r\n };\r\n /** @hidden */\r\n Effect.prototype._cacheFloat3 = function (uniformName, x, y, z) {\r\n var cache = this._valueCache[uniformName];\r\n if (!cache) {\r\n cache = [x, y, z];\r\n this._valueCache[uniformName] = cache;\r\n return true;\r\n }\r\n var changed = false;\r\n if (cache[0] !== x) {\r\n cache[0] = x;\r\n changed = true;\r\n }\r\n if (cache[1] !== y) {\r\n cache[1] = y;\r\n changed = true;\r\n }\r\n if (cache[2] !== z) {\r\n cache[2] = z;\r\n changed = true;\r\n }\r\n return changed;\r\n };\r\n /** @hidden */\r\n Effect.prototype._cacheFloat4 = function (uniformName, x, y, z, w) {\r\n var cache = this._valueCache[uniformName];\r\n if (!cache) {\r\n cache = [x, y, z, w];\r\n this._valueCache[uniformName] = cache;\r\n return true;\r\n }\r\n var changed = false;\r\n if (cache[0] !== x) {\r\n cache[0] = x;\r\n changed = true;\r\n }\r\n if (cache[1] !== y) {\r\n cache[1] = y;\r\n changed = true;\r\n }\r\n if (cache[2] !== z) {\r\n cache[2] = z;\r\n changed = true;\r\n }\r\n if (cache[3] !== w) {\r\n cache[3] = w;\r\n changed = true;\r\n }\r\n return changed;\r\n };\r\n /**\r\n * Binds a buffer to a uniform.\r\n * @param buffer Buffer to bind.\r\n * @param name Name of the uniform variable to bind to.\r\n */\r\n Effect.prototype.bindUniformBuffer = function (buffer, name) {\r\n var bufferName = this._uniformBuffersNames[name];\r\n if (bufferName === undefined || Effect._baseCache[bufferName] === buffer) {\r\n return;\r\n }\r\n Effect._baseCache[bufferName] = buffer;\r\n this._engine.bindUniformBufferBase(buffer, bufferName);\r\n };\r\n /**\r\n * Binds block to a uniform.\r\n * @param blockName Name of the block to bind.\r\n * @param index Index to bind.\r\n */\r\n Effect.prototype.bindUniformBlock = function (blockName, index) {\r\n this._engine.bindUniformBlock(this._pipelineContext, blockName, index);\r\n };\r\n /**\r\n * Sets an interger value on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param value Value to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setInt = function (uniformName, value) {\r\n var cache = this._valueCache[uniformName];\r\n if (cache !== undefined && cache === value) {\r\n return this;\r\n }\r\n this._valueCache[uniformName] = value;\r\n this._engine.setInt(this._uniforms[uniformName], value);\r\n return this;\r\n };\r\n /**\r\n * Sets an int array on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setIntArray = function (uniformName, array) {\r\n this._valueCache[uniformName] = null;\r\n this._engine.setIntArray(this._uniforms[uniformName], array);\r\n return this;\r\n };\r\n /**\r\n * Sets an int array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setIntArray2 = function (uniformName, array) {\r\n this._valueCache[uniformName] = null;\r\n this._engine.setIntArray2(this._uniforms[uniformName], array);\r\n return this;\r\n };\r\n /**\r\n * Sets an int array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setIntArray3 = function (uniformName, array) {\r\n this._valueCache[uniformName] = null;\r\n this._engine.setIntArray3(this._uniforms[uniformName], array);\r\n return this;\r\n };\r\n /**\r\n * Sets an int array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setIntArray4 = function (uniformName, array) {\r\n this._valueCache[uniformName] = null;\r\n this._engine.setIntArray4(this._uniforms[uniformName], array);\r\n return this;\r\n };\r\n /**\r\n * Sets an float array on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setFloatArray = function (uniformName, array) {\r\n this._valueCache[uniformName] = null;\r\n this._engine.setFloatArray(this._uniforms[uniformName], array);\r\n return this;\r\n };\r\n /**\r\n * Sets an float array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setFloatArray2 = function (uniformName, array) {\r\n this._valueCache[uniformName] = null;\r\n this._engine.setFloatArray2(this._uniforms[uniformName], array);\r\n return this;\r\n };\r\n /**\r\n * Sets an float array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setFloatArray3 = function (uniformName, array) {\r\n this._valueCache[uniformName] = null;\r\n this._engine.setFloatArray3(this._uniforms[uniformName], array);\r\n return this;\r\n };\r\n /**\r\n * Sets an float array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setFloatArray4 = function (uniformName, array) {\r\n this._valueCache[uniformName] = null;\r\n this._engine.setFloatArray4(this._uniforms[uniformName], array);\r\n return this;\r\n };\r\n /**\r\n * Sets an array on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setArray = function (uniformName, array) {\r\n this._valueCache[uniformName] = null;\r\n this._engine.setArray(this._uniforms[uniformName], array);\r\n return this;\r\n };\r\n /**\r\n * Sets an array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setArray2 = function (uniformName, array) {\r\n this._valueCache[uniformName] = null;\r\n this._engine.setArray2(this._uniforms[uniformName], array);\r\n return this;\r\n };\r\n /**\r\n * Sets an array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setArray3 = function (uniformName, array) {\r\n this._valueCache[uniformName] = null;\r\n this._engine.setArray3(this._uniforms[uniformName], array);\r\n return this;\r\n };\r\n /**\r\n * Sets an array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setArray4 = function (uniformName, array) {\r\n this._valueCache[uniformName] = null;\r\n this._engine.setArray4(this._uniforms[uniformName], array);\r\n return this;\r\n };\r\n /**\r\n * Sets matrices on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param matrices matrices to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setMatrices = function (uniformName, matrices) {\r\n if (!matrices) {\r\n return this;\r\n }\r\n this._valueCache[uniformName] = null;\r\n this._engine.setMatrices(this._uniforms[uniformName], matrices);\r\n return this;\r\n };\r\n /**\r\n * Sets matrix on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param matrix matrix to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setMatrix = function (uniformName, matrix) {\r\n if (this._cacheMatrix(uniformName, matrix)) {\r\n this._engine.setMatrices(this._uniforms[uniformName], matrix.toArray());\r\n }\r\n return this;\r\n };\r\n /**\r\n * Sets a 3x3 matrix on a uniform variable. (Speicified as [1,2,3,4,5,6,7,8,9] will result in [1,2,3][4,5,6][7,8,9] matrix)\r\n * @param uniformName Name of the variable.\r\n * @param matrix matrix to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setMatrix3x3 = function (uniformName, matrix) {\r\n this._valueCache[uniformName] = null;\r\n this._engine.setMatrix3x3(this._uniforms[uniformName], matrix);\r\n return this;\r\n };\r\n /**\r\n * Sets a 2x2 matrix on a uniform variable. (Speicified as [1,2,3,4] will result in [1,2][3,4] matrix)\r\n * @param uniformName Name of the variable.\r\n * @param matrix matrix to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setMatrix2x2 = function (uniformName, matrix) {\r\n this._valueCache[uniformName] = null;\r\n this._engine.setMatrix2x2(this._uniforms[uniformName], matrix);\r\n return this;\r\n };\r\n /**\r\n * Sets a float on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param value value to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setFloat = function (uniformName, value) {\r\n var cache = this._valueCache[uniformName];\r\n if (cache !== undefined && cache === value) {\r\n return this;\r\n }\r\n this._valueCache[uniformName] = value;\r\n this._engine.setFloat(this._uniforms[uniformName], value);\r\n return this;\r\n };\r\n /**\r\n * Sets a boolean on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param bool value to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setBool = function (uniformName, bool) {\r\n var cache = this._valueCache[uniformName];\r\n if (cache !== undefined && cache === bool) {\r\n return this;\r\n }\r\n this._valueCache[uniformName] = bool;\r\n this._engine.setBool(this._uniforms[uniformName], bool ? 1 : 0);\r\n return this;\r\n };\r\n /**\r\n * Sets a Vector2 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param vector2 vector2 to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setVector2 = function (uniformName, vector2) {\r\n if (this._cacheFloat2(uniformName, vector2.x, vector2.y)) {\r\n this._engine.setFloat2(this._uniforms[uniformName], vector2.x, vector2.y);\r\n }\r\n return this;\r\n };\r\n /**\r\n * Sets a float2 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param x First float in float2.\r\n * @param y Second float in float2.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setFloat2 = function (uniformName, x, y) {\r\n if (this._cacheFloat2(uniformName, x, y)) {\r\n this._engine.setFloat2(this._uniforms[uniformName], x, y);\r\n }\r\n return this;\r\n };\r\n /**\r\n * Sets a Vector3 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param vector3 Value to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setVector3 = function (uniformName, vector3) {\r\n if (this._cacheFloat3(uniformName, vector3.x, vector3.y, vector3.z)) {\r\n this._engine.setFloat3(this._uniforms[uniformName], vector3.x, vector3.y, vector3.z);\r\n }\r\n return this;\r\n };\r\n /**\r\n * Sets a float3 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param x First float in float3.\r\n * @param y Second float in float3.\r\n * @param z Third float in float3.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setFloat3 = function (uniformName, x, y, z) {\r\n if (this._cacheFloat3(uniformName, x, y, z)) {\r\n this._engine.setFloat3(this._uniforms[uniformName], x, y, z);\r\n }\r\n return this;\r\n };\r\n /**\r\n * Sets a Vector4 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param vector4 Value to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setVector4 = function (uniformName, vector4) {\r\n if (this._cacheFloat4(uniformName, vector4.x, vector4.y, vector4.z, vector4.w)) {\r\n this._engine.setFloat4(this._uniforms[uniformName], vector4.x, vector4.y, vector4.z, vector4.w);\r\n }\r\n return this;\r\n };\r\n /**\r\n * Sets a float4 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param x First float in float4.\r\n * @param y Second float in float4.\r\n * @param z Third float in float4.\r\n * @param w Fourth float in float4.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setFloat4 = function (uniformName, x, y, z, w) {\r\n if (this._cacheFloat4(uniformName, x, y, z, w)) {\r\n this._engine.setFloat4(this._uniforms[uniformName], x, y, z, w);\r\n }\r\n return this;\r\n };\r\n /**\r\n * Sets a Color3 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param color3 Value to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setColor3 = function (uniformName, color3) {\r\n if (this._cacheFloat3(uniformName, color3.r, color3.g, color3.b)) {\r\n this._engine.setFloat3(this._uniforms[uniformName], color3.r, color3.g, color3.b);\r\n }\r\n return this;\r\n };\r\n /**\r\n * Sets a Color4 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param color3 Value to be set.\r\n * @param alpha Alpha value to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setColor4 = function (uniformName, color3, alpha) {\r\n if (this._cacheFloat4(uniformName, color3.r, color3.g, color3.b, alpha)) {\r\n this._engine.setFloat4(this._uniforms[uniformName], color3.r, color3.g, color3.b, alpha);\r\n }\r\n return this;\r\n };\r\n /**\r\n * Sets a Color4 on a uniform variable\r\n * @param uniformName defines the name of the variable\r\n * @param color4 defines the value to be set\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setDirectColor4 = function (uniformName, color4) {\r\n if (this._cacheFloat4(uniformName, color4.r, color4.g, color4.b, color4.a)) {\r\n this._engine.setDirectColor4(this._uniforms[uniformName], color4);\r\n }\r\n return this;\r\n };\r\n /** Release all associated resources */\r\n Effect.prototype.dispose = function () {\r\n this._engine._releaseEffect(this);\r\n };\r\n /**\r\n * This function will add a new shader to the shader store\r\n * @param name the name of the shader\r\n * @param pixelShader optional pixel shader content\r\n * @param vertexShader optional vertex shader content\r\n */\r\n Effect.RegisterShader = function (name, pixelShader, vertexShader) {\r\n if (pixelShader) {\r\n Effect.ShadersStore[name + \"PixelShader\"] = pixelShader;\r\n }\r\n if (vertexShader) {\r\n Effect.ShadersStore[name + \"VertexShader\"] = vertexShader;\r\n }\r\n };\r\n /**\r\n * Resets the cache of effects.\r\n */\r\n Effect.ResetCache = function () {\r\n Effect._baseCache = {};\r\n };\r\n /**\r\n * Gets or sets the relative url used to load shaders if using the engine in non-minified mode\r\n */\r\n Effect.ShadersRepository = \"src/Shaders/\";\r\n Effect._uniqueIdSeed = 0;\r\n Effect._baseCache = {};\r\n /**\r\n * Store of each shader (The can be looked up using effect.key)\r\n */\r\n Effect.ShadersStore = {};\r\n /**\r\n * Store of each included file for a shader (The can be looked up using effect.key)\r\n */\r\n Effect.IncludesShadersStore = {};\r\n return Effect;\r\n}());\r\nexport { Effect };\r\n//# sourceMappingURL=effect.js.map"
  3357. },
  3358. {
  3359. "id": "../../.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  3360. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Meshes\\WebGL\\webGLDataBuffer.js",
  3361. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  3362. "index": 35,
  3363. "index2": 34,
  3364. "size": 692,
  3365. "cacheable": true,
  3366. "built": true,
  3367. "optional": false,
  3368. "prefetched": false,
  3369. "chunks": [
  3370. "thinEngineOnly"
  3371. ],
  3372. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3373. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3374. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3375. "issuerPath": [
  3376. {
  3377. "id": "./thinEngineOnly.ts",
  3378. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  3379. "name": "./thinEngineOnly.ts",
  3380. "profile": {
  3381. "factory": 42,
  3382. "building": 2115
  3383. }
  3384. },
  3385. {
  3386. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3387. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3388. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3389. "profile": {
  3390. "factory": 6,
  3391. "building": 110
  3392. }
  3393. }
  3394. ],
  3395. "profile": {
  3396. "factory": 59,
  3397. "building": 41,
  3398. "dependencies": 4
  3399. },
  3400. "failed": false,
  3401. "errors": 0,
  3402. "warnings": 0,
  3403. "assets": [],
  3404. "reasons": [
  3405. {
  3406. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3407. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3408. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3409. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3410. "type": "harmony side effect evaluation",
  3411. "userRequest": "../Meshes/WebGL/webGLDataBuffer",
  3412. "loc": "16:0-66"
  3413. },
  3414. {
  3415. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3416. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3417. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3418. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3419. "type": "harmony import specifier",
  3420. "userRequest": "../Meshes/WebGL/webGLDataBuffer",
  3421. "loc": "1116:29-44"
  3422. },
  3423. {
  3424. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3425. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3426. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3427. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3428. "type": "harmony import specifier",
  3429. "userRequest": "../Meshes/WebGL/webGLDataBuffer",
  3430. "loc": "1205:29-44"
  3431. },
  3432. {
  3433. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3434. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3435. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3436. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3437. "type": "harmony import specifier",
  3438. "userRequest": "../Meshes/WebGL/webGLDataBuffer",
  3439. "loc": "1497:25-40"
  3440. }
  3441. ],
  3442. "providedExports": [
  3443. "WebGLDataBuffer"
  3444. ],
  3445. "optimizationBailout": [],
  3446. "depth": 2,
  3447. "source": "import * as tslib_1 from \"tslib\";\r\nimport { DataBuffer } from '../dataBuffer';\r\n/** @hidden */\r\nvar WebGLDataBuffer = /** @class */ (function (_super) {\r\n tslib_1.__extends(WebGLDataBuffer, _super);\r\n function WebGLDataBuffer(resource) {\r\n var _this = _super.call(this) || this;\r\n _this._buffer = resource;\r\n return _this;\r\n }\r\n Object.defineProperty(WebGLDataBuffer.prototype, \"underlyingResource\", {\r\n get: function () {\r\n return this._buffer;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return WebGLDataBuffer;\r\n}(DataBuffer));\r\nexport { WebGLDataBuffer };\r\n//# sourceMappingURL=webGLDataBuffer.js.map"
  3448. },
  3449. {
  3450. "id": "../../.temp/packageES6Dev/core/Meshes/dataBuffer.js",
  3451. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Meshes\\dataBuffer.js",
  3452. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Meshes/dataBuffer.js",
  3453. "index": 36,
  3454. "index2": 33,
  3455. "size": 866,
  3456. "cacheable": true,
  3457. "built": true,
  3458. "optional": false,
  3459. "prefetched": false,
  3460. "chunks": [
  3461. "thinEngineOnly"
  3462. ],
  3463. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Meshes\\WebGL\\webGLDataBuffer.js",
  3464. "issuerId": "../../.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  3465. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  3466. "issuerPath": [
  3467. {
  3468. "id": "./thinEngineOnly.ts",
  3469. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  3470. "name": "./thinEngineOnly.ts",
  3471. "profile": {
  3472. "factory": 42,
  3473. "building": 2115
  3474. }
  3475. },
  3476. {
  3477. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3478. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3479. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3480. "profile": {
  3481. "factory": 6,
  3482. "building": 110
  3483. }
  3484. },
  3485. {
  3486. "id": "../../.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  3487. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Meshes\\WebGL\\webGLDataBuffer.js",
  3488. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  3489. "profile": {
  3490. "factory": 59,
  3491. "building": 41,
  3492. "dependencies": 4
  3493. }
  3494. }
  3495. ],
  3496. "profile": {
  3497. "factory": 46,
  3498. "building": 8
  3499. },
  3500. "failed": false,
  3501. "errors": 0,
  3502. "warnings": 0,
  3503. "assets": [],
  3504. "reasons": [
  3505. {
  3506. "moduleId": "../../.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  3507. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Meshes\\WebGL\\webGLDataBuffer.js",
  3508. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  3509. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  3510. "type": "harmony side effect evaluation",
  3511. "userRequest": "../dataBuffer",
  3512. "loc": "2:0-43"
  3513. },
  3514. {
  3515. "moduleId": "../../.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  3516. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Meshes\\WebGL\\webGLDataBuffer.js",
  3517. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  3518. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  3519. "type": "harmony import specifier",
  3520. "userRequest": "../dataBuffer",
  3521. "loc": "19:2-12"
  3522. }
  3523. ],
  3524. "providedExports": [
  3525. "DataBuffer"
  3526. ],
  3527. "optimizationBailout": [],
  3528. "depth": 3,
  3529. "source": "/**\r\n * Class used to store gfx data (like WebGLBuffer)\r\n */\r\nvar DataBuffer = /** @class */ (function () {\r\n function DataBuffer() {\r\n /**\r\n * Gets or sets the number of objects referencing this buffer\r\n */\r\n this.references = 0;\r\n /** Gets or sets the size of the underlying buffer */\r\n this.capacity = 0;\r\n /**\r\n * Gets or sets a boolean indicating if the buffer contains 32bits indices\r\n */\r\n this.is32Bits = false;\r\n }\r\n Object.defineProperty(DataBuffer.prototype, \"underlyingResource\", {\r\n /**\r\n * Gets the underlying buffer\r\n */\r\n get: function () {\r\n return null;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return DataBuffer;\r\n}());\r\nexport { DataBuffer };\r\n//# sourceMappingURL=dataBuffer.js.map"
  3530. },
  3531. {
  3532. "id": "../../.temp/packageES6Dev/core/Misc/devTools.js",
  3533. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\devTools.js",
  3534. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/devTools.js",
  3535. "index": 25,
  3536. "index2": 23,
  3537. "size": 347,
  3538. "cacheable": true,
  3539. "built": true,
  3540. "optional": false,
  3541. "prefetched": false,
  3542. "chunks": [
  3543. "thinEngineOnly"
  3544. ],
  3545. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3546. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3547. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3548. "issuerPath": [
  3549. {
  3550. "id": "./thinEngineOnly.ts",
  3551. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  3552. "name": "./thinEngineOnly.ts",
  3553. "profile": {
  3554. "factory": 42,
  3555. "building": 2115
  3556. }
  3557. },
  3558. {
  3559. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3560. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3561. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3562. "profile": {
  3563. "factory": 6,
  3564. "building": 110
  3565. }
  3566. }
  3567. ],
  3568. "profile": {
  3569. "factory": 59,
  3570. "building": 41,
  3571. "dependencies": 4
  3572. },
  3573. "failed": false,
  3574. "errors": 0,
  3575. "warnings": 0,
  3576. "assets": [],
  3577. "reasons": [
  3578. {
  3579. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3580. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3581. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3582. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3583. "type": "harmony side effect evaluation",
  3584. "userRequest": "../Misc/devTools",
  3585. "loc": "4:0-45"
  3586. },
  3587. {
  3588. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3589. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3590. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3591. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3592. "type": "harmony import specifier",
  3593. "userRequest": "../Misc/devTools",
  3594. "loc": "2573:14-23"
  3595. },
  3596. {
  3597. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3598. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3599. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3600. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3601. "type": "harmony import specifier",
  3602. "userRequest": "../Misc/devTools",
  3603. "loc": "2589:14-23"
  3604. },
  3605. {
  3606. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3607. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3608. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3609. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3610. "type": "harmony import specifier",
  3611. "userRequest": "../Misc/devTools",
  3612. "loc": "2608:14-23"
  3613. },
  3614. {
  3615. "moduleId": "../../.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  3616. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\Textures\\internalTexture.js",
  3617. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  3618. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  3619. "type": "harmony side effect evaluation",
  3620. "userRequest": "../../Misc/devTools",
  3621. "loc": "4:0-48"
  3622. },
  3623. {
  3624. "moduleId": "../../.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  3625. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\Textures\\internalTexture.js",
  3626. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  3627. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  3628. "type": "harmony import specifier",
  3629. "userRequest": "../../Misc/devTools",
  3630. "loc": "373:14-23"
  3631. }
  3632. ],
  3633. "providedExports": [
  3634. "_DevTools"
  3635. ],
  3636. "optimizationBailout": [],
  3637. "depth": 2,
  3638. "source": "/** @hidden */\r\nvar _DevTools = /** @class */ (function () {\r\n function _DevTools() {\r\n }\r\n _DevTools.WarnImport = function (name) {\r\n return name + \" needs to be imported before as it contains a side-effect required by your code.\";\r\n };\r\n return _DevTools;\r\n}());\r\nexport { _DevTools };\r\n//# sourceMappingURL=devTools.js.map"
  3639. },
  3640. {
  3641. "id": "../../.temp/packageES6Dev/core/Misc/domManagement.js",
  3642. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\domManagement.js",
  3643. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/domManagement.js",
  3644. "index": 7,
  3645. "index2": 4,
  3646. "size": 1249,
  3647. "cacheable": true,
  3648. "built": true,
  3649. "optional": false,
  3650. "prefetched": false,
  3651. "chunks": [
  3652. "thinEngineOnly"
  3653. ],
  3654. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3655. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3656. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3657. "issuerPath": [
  3658. {
  3659. "id": "./thinEngineOnly.ts",
  3660. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  3661. "name": "./thinEngineOnly.ts",
  3662. "profile": {
  3663. "factory": 42,
  3664. "building": 2115
  3665. }
  3666. },
  3667. {
  3668. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3669. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3670. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3671. "profile": {
  3672. "factory": 6,
  3673. "building": 110
  3674. }
  3675. }
  3676. ],
  3677. "profile": {
  3678. "factory": 59,
  3679. "building": 41,
  3680. "dependencies": 4
  3681. },
  3682. "failed": false,
  3683. "errors": 0,
  3684. "warnings": 0,
  3685. "assets": [],
  3686. "reasons": [
  3687. {
  3688. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3689. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3690. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3691. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3692. "type": "harmony side effect evaluation",
  3693. "userRequest": "../Misc/domManagement",
  3694. "loc": "14:0-54"
  3695. },
  3696. {
  3697. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3698. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3699. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3700. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3701. "type": "harmony import specifier",
  3702. "userRequest": "../Misc/domManagement",
  3703. "loc": "289:31-44"
  3704. },
  3705. {
  3706. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3707. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3708. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3709. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3710. "type": "harmony import specifier",
  3711. "userRequest": "../Misc/domManagement",
  3712. "loc": "3329:12-25"
  3713. },
  3714. {
  3715. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3716. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3717. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3718. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3719. "type": "harmony import specifier",
  3720. "userRequest": "../Misc/domManagement",
  3721. "loc": "3794:13-26"
  3722. },
  3723. {
  3724. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  3725. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  3726. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  3727. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  3728. "type": "harmony side effect evaluation",
  3729. "userRequest": "../Misc/domManagement",
  3730. "loc": "3:0-54"
  3731. },
  3732. {
  3733. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  3734. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  3735. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  3736. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  3737. "type": "harmony import specifier",
  3738. "userRequest": "../Misc/domManagement",
  3739. "loc": "461:33-46"
  3740. },
  3741. {
  3742. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  3743. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  3744. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  3745. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  3746. "type": "harmony import specifier",
  3747. "userRequest": "../Misc/domManagement",
  3748. "loc": "497:35-48"
  3749. },
  3750. {
  3751. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  3752. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  3753. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  3754. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  3755. "type": "harmony side effect evaluation",
  3756. "userRequest": "./domManagement",
  3757. "loc": "3:0-48"
  3758. },
  3759. {
  3760. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  3761. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  3762. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  3763. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  3764. "type": "harmony import specifier",
  3765. "userRequest": "./domManagement",
  3766. "loc": "223:106-119"
  3767. },
  3768. {
  3769. "moduleId": "../../.temp/packageES6Dev/core/Misc/precisionDate.js",
  3770. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\precisionDate.js",
  3771. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/precisionDate.js",
  3772. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/precisionDate.js",
  3773. "type": "harmony side effect evaluation",
  3774. "userRequest": "./domManagement",
  3775. "loc": "1:0-48"
  3776. },
  3777. {
  3778. "moduleId": "../../.temp/packageES6Dev/core/Misc/precisionDate.js",
  3779. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\precisionDate.js",
  3780. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/precisionDate.js",
  3781. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/precisionDate.js",
  3782. "type": "harmony import specifier",
  3783. "userRequest": "./domManagement",
  3784. "loc": "13:16-29"
  3785. }
  3786. ],
  3787. "providedExports": [
  3788. "DomManagement"
  3789. ],
  3790. "optimizationBailout": [],
  3791. "depth": 2,
  3792. "source": "/**\r\n * Sets of helpers dealing with the DOM and some of the recurrent functions needed in\r\n * Babylon.js\r\n */\r\nvar DomManagement = /** @class */ (function () {\r\n function DomManagement() {\r\n }\r\n /**\r\n * Checks if the window object exists\r\n * @returns true if the window object exists\r\n */\r\n DomManagement.IsWindowObjectExist = function () {\r\n return (typeof window) !== \"undefined\";\r\n };\r\n /**\r\n * Checks if the navigator object exists\r\n * @returns true if the navigator object exists\r\n */\r\n DomManagement.IsNavigatorAvailable = function () {\r\n return (typeof navigator) !== \"undefined\";\r\n };\r\n /**\r\n * Extracts text content from a DOM element hierarchy\r\n * @param element defines the root element\r\n * @returns a string\r\n */\r\n DomManagement.GetDOMTextContent = function (element) {\r\n var result = \"\";\r\n var child = element.firstChild;\r\n while (child) {\r\n if (child.nodeType === 3) {\r\n result += child.textContent;\r\n }\r\n child = (child.nextSibling);\r\n }\r\n return result;\r\n };\r\n return DomManagement;\r\n}());\r\nexport { DomManagement };\r\n//# sourceMappingURL=domManagement.js.map"
  3793. },
  3794. {
  3795. "id": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  3796. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  3797. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  3798. "index": 20,
  3799. "index2": 20,
  3800. "size": 13727,
  3801. "cacheable": true,
  3802. "built": true,
  3803. "optional": false,
  3804. "prefetched": false,
  3805. "chunks": [
  3806. "thinEngineOnly"
  3807. ],
  3808. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3809. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3810. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3811. "issuerPath": [
  3812. {
  3813. "id": "./thinEngineOnly.ts",
  3814. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  3815. "name": "./thinEngineOnly.ts",
  3816. "profile": {
  3817. "factory": 42,
  3818. "building": 2115
  3819. }
  3820. },
  3821. {
  3822. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3823. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3824. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3825. "profile": {
  3826. "factory": 6,
  3827. "building": 110
  3828. }
  3829. }
  3830. ],
  3831. "profile": {
  3832. "factory": 59,
  3833. "building": 41,
  3834. "dependencies": 4
  3835. },
  3836. "failed": false,
  3837. "errors": 0,
  3838. "warnings": 0,
  3839. "assets": [],
  3840. "reasons": [
  3841. {
  3842. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  3843. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  3844. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  3845. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  3846. "type": "harmony side effect evaluation",
  3847. "userRequest": "../../Misc/fileTools",
  3848. "loc": "9:0-49"
  3849. },
  3850. {
  3851. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  3852. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  3853. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  3854. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  3855. "type": "harmony import specifier",
  3856. "userRequest": "../../Misc/fileTools",
  3857. "loc": "284:16-25"
  3858. },
  3859. {
  3860. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3861. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3862. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3863. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3864. "type": "harmony side effect evaluation",
  3865. "userRequest": "../Misc/fileTools",
  3866. "loc": "18:0-46"
  3867. },
  3868. {
  3869. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3870. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3871. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3872. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3873. "type": "harmony import specifier",
  3874. "userRequest": "../Misc/fileTools",
  3875. "loc": "2540:20-29"
  3876. },
  3877. {
  3878. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3879. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3880. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3881. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3882. "type": "harmony import specifier",
  3883. "userRequest": "../Misc/fileTools",
  3884. "loc": "2544:16-25"
  3885. },
  3886. {
  3887. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3888. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3889. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3890. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3891. "type": "harmony import specifier",
  3892. "userRequest": "../Misc/fileTools",
  3893. "loc": "3702:22-31"
  3894. }
  3895. ],
  3896. "providedExports": [
  3897. "FileTools"
  3898. ],
  3899. "optimizationBailout": [],
  3900. "depth": 2,
  3901. "source": "import { WebRequest } from './webRequest';\r\nimport { LoadFileError } from './loadFileError';\r\nimport { DomManagement } from './domManagement';\r\nimport { Observable } from './observable';\r\nimport { FilesInputStore } from './filesInputStore';\r\nimport { RetryStrategy } from './retryStrategy';\r\n/**\r\n * @hidden\r\n */\r\nvar FileTools = /** @class */ (function () {\r\n function FileTools() {\r\n }\r\n /**\r\n * Removes unwanted characters from an url\r\n * @param url defines the url to clean\r\n * @returns the cleaned url\r\n */\r\n FileTools._CleanUrl = function (url) {\r\n url = url.replace(/#/mg, \"%23\");\r\n return url;\r\n };\r\n /**\r\n * Sets the cors behavior on a dom element. This will add the required Tools.CorsBehavior to the element.\r\n * @param url define the url we are trying\r\n * @param element define the dom element where to configure the cors policy\r\n */\r\n FileTools.SetCorsBehavior = function (url, element) {\r\n if (url && url.indexOf(\"data:\") === 0) {\r\n return;\r\n }\r\n if (this.CorsBehavior) {\r\n if (typeof (this.CorsBehavior) === 'string' || this.CorsBehavior instanceof String) {\r\n element.crossOrigin = this.CorsBehavior;\r\n }\r\n else {\r\n var result = this.CorsBehavior(url);\r\n if (result) {\r\n element.crossOrigin = result;\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Loads an image as an HTMLImageElement.\r\n * @param input url string, ArrayBuffer, or Blob to load\r\n * @param onLoad callback called when the image successfully loads\r\n * @param onError callback called when the image fails to load\r\n * @param offlineProvider offline provider for caching\r\n * @returns the HTMLImageElement of the loaded image\r\n */\r\n FileTools.LoadImage = function (input, onLoad, onError, offlineProvider) {\r\n var url;\r\n var usingObjectURL = false;\r\n if (input instanceof ArrayBuffer || ArrayBuffer.isView(input)) {\r\n url = URL.createObjectURL(new Blob([input]));\r\n usingObjectURL = true;\r\n }\r\n else if (input instanceof Blob) {\r\n url = URL.createObjectURL(input);\r\n usingObjectURL = true;\r\n }\r\n else {\r\n url = this._CleanUrl(input);\r\n url = this.PreprocessUrl(input);\r\n }\r\n var img = new Image();\r\n this.SetCorsBehavior(url, img);\r\n var loadHandler = function () {\r\n img.removeEventListener(\"load\", loadHandler);\r\n img.removeEventListener(\"error\", errorHandler);\r\n onLoad(img);\r\n // Must revoke the URL after calling onLoad to avoid security exceptions in\r\n // certain scenarios (e.g. when hosted in vscode).\r\n if (usingObjectURL && img.src) {\r\n URL.revokeObjectURL(img.src);\r\n }\r\n };\r\n var errorHandler = function (err) {\r\n img.removeEventListener(\"load\", loadHandler);\r\n img.removeEventListener(\"error\", errorHandler);\r\n if (onError) {\r\n onError(\"Error while trying to load image: \" + input, err);\r\n }\r\n if (usingObjectURL && img.src) {\r\n URL.revokeObjectURL(img.src);\r\n }\r\n };\r\n img.addEventListener(\"load\", loadHandler);\r\n img.addEventListener(\"error\", errorHandler);\r\n var noOfflineSupport = function () {\r\n img.src = url;\r\n };\r\n var loadFromOfflineSupport = function () {\r\n if (offlineProvider) {\r\n offlineProvider.loadImage(url, img);\r\n }\r\n };\r\n if (url.substr(0, 5) !== \"data:\" && offlineProvider && offlineProvider.enableTexturesOffline) {\r\n offlineProvider.open(loadFromOfflineSupport, noOfflineSupport);\r\n }\r\n else {\r\n if (url.indexOf(\"file:\") !== -1) {\r\n var textureName = decodeURIComponent(url.substring(5).toLowerCase());\r\n if (FilesInputStore.FilesToLoad[textureName]) {\r\n try {\r\n var blobURL;\r\n try {\r\n blobURL = URL.createObjectURL(FilesInputStore.FilesToLoad[textureName]);\r\n }\r\n catch (ex) {\r\n // Chrome doesn't support oneTimeOnly parameter\r\n blobURL = URL.createObjectURL(FilesInputStore.FilesToLoad[textureName]);\r\n }\r\n img.src = blobURL;\r\n usingObjectURL = true;\r\n }\r\n catch (e) {\r\n img.src = \"\";\r\n }\r\n return img;\r\n }\r\n }\r\n noOfflineSupport();\r\n }\r\n return img;\r\n };\r\n /**\r\n * Loads a file\r\n * @param fileToLoad defines the file to load\r\n * @param callback defines the callback to call when data is loaded\r\n * @param progressCallBack defines the callback to call during loading process\r\n * @param useArrayBuffer defines a boolean indicating that data must be returned as an ArrayBuffer\r\n * @returns a file request object\r\n */\r\n FileTools.ReadFile = function (fileToLoad, callback, progressCallBack, useArrayBuffer) {\r\n var reader = new FileReader();\r\n var request = {\r\n onCompleteObservable: new Observable(),\r\n abort: function () { return reader.abort(); },\r\n };\r\n reader.onloadend = function (e) { return request.onCompleteObservable.notifyObservers(request); };\r\n reader.onerror = function (e) {\r\n callback(JSON.stringify({ autoClear: true, clearColor: [1, 0, 0], ambientColor: [0, 0, 0], gravity: [0, -9.807, 0], meshes: [], cameras: [], lights: [] }));\r\n };\r\n reader.onload = function (e) {\r\n //target doesn't have result from ts 1.3\r\n callback(e.target['result']);\r\n };\r\n if (progressCallBack) {\r\n reader.onprogress = progressCallBack;\r\n }\r\n if (!useArrayBuffer) {\r\n // Asynchronous read\r\n reader.readAsText(fileToLoad);\r\n }\r\n else {\r\n reader.readAsArrayBuffer(fileToLoad);\r\n }\r\n return request;\r\n };\r\n /**\r\n * Loads a file\r\n * @param url url string, ArrayBuffer, or Blob to load\r\n * @param onSuccess callback called when the file successfully loads\r\n * @param onProgress callback called while file is loading (if the server supports this mode)\r\n * @param offlineProvider defines the offline provider for caching\r\n * @param useArrayBuffer defines a boolean indicating that date must be returned as ArrayBuffer\r\n * @param onError callback called when the file fails to load\r\n * @returns a file request object\r\n */\r\n FileTools.LoadFile = function (url, onSuccess, onProgress, offlineProvider, useArrayBuffer, onError) {\r\n var _this = this;\r\n url = this._CleanUrl(url);\r\n url = this.PreprocessUrl(url);\r\n // If file and file input are set\r\n if (url.indexOf(\"file:\") !== -1) {\r\n var fileName = decodeURIComponent(url.substring(5).toLowerCase());\r\n if (FilesInputStore.FilesToLoad[fileName]) {\r\n return this.ReadFile(FilesInputStore.FilesToLoad[fileName], onSuccess, onProgress, useArrayBuffer);\r\n }\r\n }\r\n var loadUrl = this.BaseUrl + url;\r\n var aborted = false;\r\n var fileRequest = {\r\n onCompleteObservable: new Observable(),\r\n abort: function () { return aborted = true; },\r\n };\r\n var requestFile = function () {\r\n var request = new WebRequest();\r\n var retryHandle = null;\r\n fileRequest.abort = function () {\r\n aborted = true;\r\n if (request.readyState !== (XMLHttpRequest.DONE || 4)) {\r\n request.abort();\r\n }\r\n if (retryHandle !== null) {\r\n clearTimeout(retryHandle);\r\n retryHandle = null;\r\n }\r\n };\r\n var retryLoop = function (retryIndex) {\r\n request.open('GET', loadUrl);\r\n if (useArrayBuffer) {\r\n request.responseType = \"arraybuffer\";\r\n }\r\n if (onProgress) {\r\n request.addEventListener(\"progress\", onProgress);\r\n }\r\n var onLoadEnd = function () {\r\n request.removeEventListener(\"loadend\", onLoadEnd);\r\n fileRequest.onCompleteObservable.notifyObservers(fileRequest);\r\n fileRequest.onCompleteObservable.clear();\r\n };\r\n request.addEventListener(\"loadend\", onLoadEnd);\r\n var onReadyStateChange = function () {\r\n if (aborted) {\r\n return;\r\n }\r\n // In case of undefined state in some browsers.\r\n if (request.readyState === (XMLHttpRequest.DONE || 4)) {\r\n // Some browsers have issues where onreadystatechange can be called multiple times with the same value.\r\n request.removeEventListener(\"readystatechange\", onReadyStateChange);\r\n if ((request.status >= 200 && request.status < 300) || (request.status === 0 && (!DomManagement.IsWindowObjectExist() || _this.IsFileURL()))) {\r\n onSuccess(!useArrayBuffer ? request.responseText : request.response, request.responseURL);\r\n return;\r\n }\r\n var retryStrategy = _this.DefaultRetryStrategy;\r\n if (retryStrategy) {\r\n var waitTime = retryStrategy(loadUrl, request, retryIndex);\r\n if (waitTime !== -1) {\r\n // Prevent the request from completing for retry.\r\n request.removeEventListener(\"loadend\", onLoadEnd);\r\n request = new WebRequest();\r\n retryHandle = setTimeout(function () { return retryLoop(retryIndex + 1); }, waitTime);\r\n return;\r\n }\r\n }\r\n var e = new LoadFileError(\"Error status: \" + request.status + \" \" + request.statusText + \" - Unable to load \" + loadUrl, request);\r\n if (onError) {\r\n onError(request, e);\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n };\r\n request.addEventListener(\"readystatechange\", onReadyStateChange);\r\n request.send();\r\n };\r\n retryLoop(0);\r\n };\r\n // Caching all files\r\n if (offlineProvider && offlineProvider.enableSceneOffline) {\r\n var noOfflineSupport_1 = function (request) {\r\n if (request && request.status > 400) {\r\n if (onError) {\r\n onError(request);\r\n }\r\n }\r\n else {\r\n if (!aborted) {\r\n requestFile();\r\n }\r\n }\r\n };\r\n var loadFromOfflineSupport = function () {\r\n // TODO: database needs to support aborting and should return a IFileRequest\r\n if (aborted) {\r\n return;\r\n }\r\n if (offlineProvider) {\r\n offlineProvider.loadFile(url, function (data) {\r\n if (!aborted) {\r\n onSuccess(data);\r\n }\r\n fileRequest.onCompleteObservable.notifyObservers(fileRequest);\r\n }, onProgress ? function (event) {\r\n if (!aborted) {\r\n onProgress(event);\r\n }\r\n } : undefined, noOfflineSupport_1, useArrayBuffer);\r\n }\r\n };\r\n offlineProvider.open(loadFromOfflineSupport, noOfflineSupport_1);\r\n }\r\n else {\r\n requestFile();\r\n }\r\n return fileRequest;\r\n };\r\n /**\r\n * Checks if the loaded document was accessed via `file:`-Protocol.\r\n * @returns boolean\r\n */\r\n FileTools.IsFileURL = function () {\r\n return location.protocol === \"file:\";\r\n };\r\n /**\r\n * Gets or sets the retry strategy to apply when an error happens while loading an asset\r\n */\r\n FileTools.DefaultRetryStrategy = RetryStrategy.ExponentialBackoff();\r\n /**\r\n * Gets or sets the base URL to use to load assets\r\n */\r\n FileTools.BaseUrl = \"\";\r\n /**\r\n * Default behaviour for cors in the application.\r\n * It can be a string if the expected behavior is identical in the entire app.\r\n * Or a callback to be able to set it per url or on a group of them (in case of Video source for instance)\r\n */\r\n FileTools.CorsBehavior = \"anonymous\";\r\n /**\r\n * Gets or sets a function used to pre-process url before using them to load assets\r\n */\r\n FileTools.PreprocessUrl = function (url) {\r\n return url;\r\n };\r\n return FileTools;\r\n}());\r\nexport { FileTools };\r\n//# sourceMappingURL=fileTools.js.map"
  3902. },
  3903. {
  3904. "id": "../../.temp/packageES6Dev/core/Misc/filesInputStore.js",
  3905. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\filesInputStore.js",
  3906. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/filesInputStore.js",
  3907. "index": 23,
  3908. "index2": 18,
  3909. "size": 387,
  3910. "cacheable": true,
  3911. "built": true,
  3912. "optional": false,
  3913. "prefetched": false,
  3914. "chunks": [
  3915. "thinEngineOnly"
  3916. ],
  3917. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  3918. "issuerId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  3919. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  3920. "issuerPath": [
  3921. {
  3922. "id": "./thinEngineOnly.ts",
  3923. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  3924. "name": "./thinEngineOnly.ts",
  3925. "profile": {
  3926. "factory": 42,
  3927. "building": 2115
  3928. }
  3929. },
  3930. {
  3931. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  3932. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  3933. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  3934. "profile": {
  3935. "factory": 6,
  3936. "building": 110
  3937. }
  3938. },
  3939. {
  3940. "id": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  3941. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  3942. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  3943. "profile": {
  3944. "factory": 59,
  3945. "building": 41,
  3946. "dependencies": 4
  3947. }
  3948. }
  3949. ],
  3950. "profile": {
  3951. "factory": 61,
  3952. "building": 8,
  3953. "dependencies": 2
  3954. },
  3955. "failed": false,
  3956. "errors": 0,
  3957. "warnings": 0,
  3958. "assets": [],
  3959. "reasons": [
  3960. {
  3961. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  3962. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  3963. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  3964. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  3965. "type": "harmony side effect evaluation",
  3966. "userRequest": "./filesInputStore",
  3967. "loc": "5:0-52"
  3968. },
  3969. {
  3970. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  3971. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  3972. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  3973. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  3974. "type": "harmony import specifier",
  3975. "userRequest": "./filesInputStore",
  3976. "loc": "104:20-35"
  3977. },
  3978. {
  3979. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  3980. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  3981. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  3982. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  3983. "type": "harmony import specifier",
  3984. "userRequest": "./filesInputStore",
  3985. "loc": "108:58-73"
  3986. },
  3987. {
  3988. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  3989. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  3990. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  3991. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  3992. "type": "harmony import specifier",
  3993. "userRequest": "./filesInputStore",
  3994. "loc": "112:58-73"
  3995. },
  3996. {
  3997. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  3998. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  3999. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4000. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4001. "type": "harmony import specifier",
  4002. "userRequest": "./filesInputStore",
  4003. "loc": "178:16-31"
  4004. },
  4005. {
  4006. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  4007. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  4008. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4009. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4010. "type": "harmony import specifier",
  4011. "userRequest": "./filesInputStore",
  4012. "loc": "179:37-52"
  4013. }
  4014. ],
  4015. "providedExports": [
  4016. "FilesInputStore"
  4017. ],
  4018. "optimizationBailout": [],
  4019. "depth": 3,
  4020. "source": "/**\r\n * Class used to help managing file picking and drag'n'drop\r\n * File Storage\r\n */\r\nvar FilesInputStore = /** @class */ (function () {\r\n function FilesInputStore() {\r\n }\r\n /**\r\n * List of files ready to be loaded\r\n */\r\n FilesInputStore.FilesToLoad = {};\r\n return FilesInputStore;\r\n}());\r\nexport { FilesInputStore };\r\n//# sourceMappingURL=filesInputStore.js.map"
  4021. },
  4022. {
  4023. "id": "../../.temp/packageES6Dev/core/Misc/loadFileError.js",
  4024. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\loadFileError.js",
  4025. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/loadFileError.js",
  4026. "index": 22,
  4027. "index2": 17,
  4028. "size": 1266,
  4029. "cacheable": true,
  4030. "built": true,
  4031. "optional": false,
  4032. "prefetched": false,
  4033. "chunks": [
  4034. "thinEngineOnly"
  4035. ],
  4036. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  4037. "issuerId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  4038. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4039. "issuerPath": [
  4040. {
  4041. "id": "./thinEngineOnly.ts",
  4042. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  4043. "name": "./thinEngineOnly.ts",
  4044. "profile": {
  4045. "factory": 42,
  4046. "building": 2115
  4047. }
  4048. },
  4049. {
  4050. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  4051. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  4052. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4053. "profile": {
  4054. "factory": 6,
  4055. "building": 110
  4056. }
  4057. },
  4058. {
  4059. "id": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  4060. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  4061. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4062. "profile": {
  4063. "factory": 59,
  4064. "building": 41,
  4065. "dependencies": 4
  4066. }
  4067. }
  4068. ],
  4069. "profile": {
  4070. "factory": 61,
  4071. "building": 8,
  4072. "dependencies": 2
  4073. },
  4074. "failed": false,
  4075. "errors": 0,
  4076. "warnings": 0,
  4077. "assets": [],
  4078. "reasons": [
  4079. {
  4080. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  4081. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  4082. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4083. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4084. "type": "harmony side effect evaluation",
  4085. "userRequest": "./loadFileError",
  4086. "loc": "2:0-48"
  4087. },
  4088. {
  4089. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  4090. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  4091. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4092. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4093. "type": "harmony import specifier",
  4094. "userRequest": "./loadFileError",
  4095. "loc": "238:36-49"
  4096. }
  4097. ],
  4098. "providedExports": [
  4099. "LoadFileError"
  4100. ],
  4101. "optimizationBailout": [],
  4102. "depth": 3,
  4103. "source": "import * as tslib_1 from \"tslib\";\r\n/**\r\n * @ignore\r\n * Application error to support additional information when loading a file\r\n */\r\nvar LoadFileError = /** @class */ (function (_super) {\r\n tslib_1.__extends(LoadFileError, _super);\r\n /**\r\n * Creates a new LoadFileError\r\n * @param message defines the message of the error\r\n * @param request defines the optional web request\r\n */\r\n function LoadFileError(message, \r\n /** defines the optional web request */\r\n request) {\r\n var _this = _super.call(this, message) || this;\r\n _this.request = request;\r\n _this.name = \"LoadFileError\";\r\n LoadFileError._setPrototypeOf(_this, LoadFileError.prototype);\r\n return _this;\r\n }\r\n // See https://stackoverflow.com/questions/12915412/how-do-i-extend-a-host-object-e-g-error-in-typescript\r\n // and https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work\r\n // Polyfill for Object.setPrototypeOf if necessary.\r\n LoadFileError._setPrototypeOf = Object.setPrototypeOf || (function (o, proto) { o.__proto__ = proto; return o; });\r\n return LoadFileError;\r\n}(Error));\r\nexport { LoadFileError };\r\n//# sourceMappingURL=loadFileError.js.map"
  4104. },
  4105. {
  4106. "id": "../../.temp/packageES6Dev/core/Misc/logger.js",
  4107. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\logger.js",
  4108. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/logger.js",
  4109. "index": 8,
  4110. "index2": 5,
  4111. "size": 4161,
  4112. "cacheable": true,
  4113. "built": true,
  4114. "optional": false,
  4115. "prefetched": false,
  4116. "chunks": [
  4117. "thinEngineOnly"
  4118. ],
  4119. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  4120. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  4121. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4122. "issuerPath": [
  4123. {
  4124. "id": "./thinEngineOnly.ts",
  4125. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  4126. "name": "./thinEngineOnly.ts",
  4127. "profile": {
  4128. "factory": 42,
  4129. "building": 2115
  4130. }
  4131. },
  4132. {
  4133. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  4134. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  4135. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4136. "profile": {
  4137. "factory": 6,
  4138. "building": 110
  4139. }
  4140. }
  4141. ],
  4142. "profile": {
  4143. "factory": 59,
  4144. "building": 41,
  4145. "dependencies": 4
  4146. },
  4147. "failed": false,
  4148. "errors": 0,
  4149. "warnings": 0,
  4150. "assets": [],
  4151. "reasons": [
  4152. {
  4153. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  4154. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  4155. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4156. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4157. "type": "harmony side effect evaluation",
  4158. "userRequest": "../Misc/logger",
  4159. "loc": "13:0-40"
  4160. },
  4161. {
  4162. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  4163. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  4164. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4165. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4166. "type": "harmony import specifier",
  4167. "userRequest": "../Misc/logger",
  4168. "loc": "216:20-26"
  4169. },
  4170. {
  4171. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  4172. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  4173. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4174. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4175. "type": "harmony import specifier",
  4176. "userRequest": "../Misc/logger",
  4177. "loc": "232:24-30"
  4178. },
  4179. {
  4180. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  4181. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  4182. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4183. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4184. "type": "harmony import specifier",
  4185. "userRequest": "../Misc/logger",
  4186. "loc": "2656:12-18"
  4187. },
  4188. {
  4189. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  4190. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  4191. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4192. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4193. "type": "harmony import specifier",
  4194. "userRequest": "../Misc/logger",
  4195. "loc": "2744:12-18"
  4196. },
  4197. {
  4198. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  4199. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  4200. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4201. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4202. "type": "harmony side effect evaluation",
  4203. "userRequest": "../Misc/logger",
  4204. "loc": "4:0-40"
  4205. },
  4206. {
  4207. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  4208. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  4209. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4210. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4211. "type": "harmony import specifier",
  4212. "userRequest": "../Misc/logger",
  4213. "loc": "547:12-18"
  4214. },
  4215. {
  4216. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  4217. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  4218. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4219. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4220. "type": "harmony import specifier",
  4221. "userRequest": "../Misc/logger",
  4222. "loc": "548:12-18"
  4223. },
  4224. {
  4225. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  4226. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  4227. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4228. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4229. "type": "harmony import specifier",
  4230. "userRequest": "../Misc/logger",
  4231. "loc": "551:12-18"
  4232. },
  4233. {
  4234. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  4235. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  4236. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4237. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4238. "type": "harmony import specifier",
  4239. "userRequest": "../Misc/logger",
  4240. "loc": "552:12-18"
  4241. },
  4242. {
  4243. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  4244. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  4245. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4246. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4247. "type": "harmony import specifier",
  4248. "userRequest": "../Misc/logger",
  4249. "loc": "555:12-18"
  4250. },
  4251. {
  4252. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  4253. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  4254. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4255. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4256. "type": "harmony import specifier",
  4257. "userRequest": "../Misc/logger",
  4258. "loc": "556:12-18"
  4259. },
  4260. {
  4261. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  4262. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  4263. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4264. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4265. "type": "harmony import specifier",
  4266. "userRequest": "../Misc/logger",
  4267. "loc": "659:8-14"
  4268. },
  4269. {
  4270. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  4271. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  4272. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4273. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4274. "type": "harmony import specifier",
  4275. "userRequest": "../Misc/logger",
  4276. "loc": "660:8-14"
  4277. },
  4278. {
  4279. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  4280. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  4281. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4282. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4283. "type": "harmony import specifier",
  4284. "userRequest": "../Misc/logger",
  4285. "loc": "663:8-14"
  4286. },
  4287. {
  4288. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  4289. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  4290. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4291. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4292. "type": "harmony import specifier",
  4293. "userRequest": "../Misc/logger",
  4294. "loc": "666:8-14"
  4295. },
  4296. {
  4297. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  4298. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  4299. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4300. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4301. "type": "harmony import specifier",
  4302. "userRequest": "../Misc/logger",
  4303. "loc": "667:8-14"
  4304. },
  4305. {
  4306. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  4307. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  4308. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4309. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4310. "type": "harmony import specifier",
  4311. "userRequest": "../Misc/logger",
  4312. "loc": "679:16-22"
  4313. }
  4314. ],
  4315. "providedExports": [
  4316. "Logger"
  4317. ],
  4318. "optimizationBailout": [],
  4319. "depth": 2,
  4320. "source": "/**\r\n * Logger used througouht the application to allow configuration of\r\n * the log level required for the messages.\r\n */\r\nvar Logger = /** @class */ (function () {\r\n function Logger() {\r\n }\r\n Logger._AddLogEntry = function (entry) {\r\n Logger._LogCache = entry + Logger._LogCache;\r\n if (Logger.OnNewCacheEntry) {\r\n Logger.OnNewCacheEntry(entry);\r\n }\r\n };\r\n Logger._FormatMessage = function (message) {\r\n var padStr = function (i) { return (i < 10) ? \"0\" + i : \"\" + i; };\r\n var date = new Date();\r\n return \"[\" + padStr(date.getHours()) + \":\" + padStr(date.getMinutes()) + \":\" + padStr(date.getSeconds()) + \"]: \" + message;\r\n };\r\n Logger._LogDisabled = function (message) {\r\n // nothing to do\r\n };\r\n Logger._LogEnabled = function (message) {\r\n var formattedMessage = Logger._FormatMessage(message);\r\n console.log(\"BJS - \" + formattedMessage);\r\n var entry = \"<div style='color:white'>\" + formattedMessage + \"</div><br>\";\r\n Logger._AddLogEntry(entry);\r\n };\r\n Logger._WarnDisabled = function (message) {\r\n // nothing to do\r\n };\r\n Logger._WarnEnabled = function (message) {\r\n var formattedMessage = Logger._FormatMessage(message);\r\n console.warn(\"BJS - \" + formattedMessage);\r\n var entry = \"<div style='color:orange'>\" + formattedMessage + \"</div><br>\";\r\n Logger._AddLogEntry(entry);\r\n };\r\n Logger._ErrorDisabled = function (message) {\r\n // nothing to do\r\n };\r\n Logger._ErrorEnabled = function (message) {\r\n Logger.errorsCount++;\r\n var formattedMessage = Logger._FormatMessage(message);\r\n console.error(\"BJS - \" + formattedMessage);\r\n var entry = \"<div style='color:red'>\" + formattedMessage + \"</div><br>\";\r\n Logger._AddLogEntry(entry);\r\n };\r\n Object.defineProperty(Logger, \"LogCache\", {\r\n /**\r\n * Gets current log cache (list of logs)\r\n */\r\n get: function () {\r\n return Logger._LogCache;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Clears the log cache\r\n */\r\n Logger.ClearLogCache = function () {\r\n Logger._LogCache = \"\";\r\n Logger.errorsCount = 0;\r\n };\r\n Object.defineProperty(Logger, \"LogLevels\", {\r\n /**\r\n * Sets the current log level (MessageLogLevel / WarningLogLevel / ErrorLogLevel)\r\n */\r\n set: function (level) {\r\n if ((level & Logger.MessageLogLevel) === Logger.MessageLogLevel) {\r\n Logger.Log = Logger._LogEnabled;\r\n }\r\n else {\r\n Logger.Log = Logger._LogDisabled;\r\n }\r\n if ((level & Logger.WarningLogLevel) === Logger.WarningLogLevel) {\r\n Logger.Warn = Logger._WarnEnabled;\r\n }\r\n else {\r\n Logger.Warn = Logger._WarnDisabled;\r\n }\r\n if ((level & Logger.ErrorLogLevel) === Logger.ErrorLogLevel) {\r\n Logger.Error = Logger._ErrorEnabled;\r\n }\r\n else {\r\n Logger.Error = Logger._ErrorDisabled;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * No log\r\n */\r\n Logger.NoneLogLevel = 0;\r\n /**\r\n * Only message logs\r\n */\r\n Logger.MessageLogLevel = 1;\r\n /**\r\n * Only warning logs\r\n */\r\n Logger.WarningLogLevel = 2;\r\n /**\r\n * Only error logs\r\n */\r\n Logger.ErrorLogLevel = 4;\r\n /**\r\n * All logs\r\n */\r\n Logger.AllLogLevel = 7;\r\n Logger._LogCache = \"\";\r\n /**\r\n * Gets a value indicating the number of loading errors\r\n * @ignorenaming\r\n */\r\n Logger.errorsCount = 0;\r\n /**\r\n * Log a message to the console\r\n */\r\n Logger.Log = Logger._LogEnabled;\r\n /**\r\n * Write a warning message to the console\r\n */\r\n Logger.Warn = Logger._WarnEnabled;\r\n /**\r\n * Write an error message to the console\r\n */\r\n Logger.Error = Logger._ErrorEnabled;\r\n return Logger;\r\n}());\r\nexport { Logger };\r\n//# sourceMappingURL=logger.js.map"
  4321. },
  4322. {
  4323. "id": "../../.temp/packageES6Dev/core/Misc/observable.js",
  4324. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\observable.js",
  4325. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/observable.js",
  4326. "index": 5,
  4327. "index2": 2,
  4328. "size": 17013,
  4329. "cacheable": true,
  4330. "built": true,
  4331. "optional": false,
  4332. "prefetched": false,
  4333. "chunks": [
  4334. "thinEngineOnly"
  4335. ],
  4336. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  4337. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  4338. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4339. "issuerPath": [
  4340. {
  4341. "id": "./thinEngineOnly.ts",
  4342. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  4343. "name": "./thinEngineOnly.ts",
  4344. "profile": {
  4345. "factory": 42,
  4346. "building": 2115
  4347. }
  4348. },
  4349. {
  4350. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  4351. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  4352. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4353. "profile": {
  4354. "factory": 6,
  4355. "building": 110
  4356. }
  4357. }
  4358. ],
  4359. "profile": {
  4360. "factory": 59,
  4361. "building": 41,
  4362. "dependencies": 4
  4363. },
  4364. "failed": false,
  4365. "errors": 0,
  4366. "warnings": 0,
  4367. "assets": [],
  4368. "reasons": [
  4369. {
  4370. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  4371. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  4372. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4373. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4374. "type": "harmony side effect evaluation",
  4375. "userRequest": "../Misc/observable",
  4376. "loc": "7:0-48"
  4377. },
  4378. {
  4379. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  4380. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  4381. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4382. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4383. "type": "harmony import specifier",
  4384. "userRequest": "../Misc/observable",
  4385. "loc": "90:43-53"
  4386. },
  4387. {
  4388. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  4389. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  4390. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4391. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4392. "type": "harmony import specifier",
  4393. "userRequest": "../Misc/observable",
  4394. "loc": "94:47-57"
  4395. },
  4396. {
  4397. "moduleId": "../../.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  4398. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\Textures\\internalTexture.js",
  4399. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  4400. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  4401. "type": "harmony side effect evaluation",
  4402. "userRequest": "../../Misc/observable",
  4403. "loc": "1:0-51"
  4404. },
  4405. {
  4406. "moduleId": "../../.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  4407. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\Textures\\internalTexture.js",
  4408. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  4409. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  4410. "type": "harmony import specifier",
  4411. "userRequest": "../../Misc/observable",
  4412. "loc": "61:38-48"
  4413. },
  4414. {
  4415. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  4416. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  4417. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4418. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4419. "type": "harmony side effect evaluation",
  4420. "userRequest": "../Misc/observable",
  4421. "loc": "1:0-48"
  4422. },
  4423. {
  4424. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  4425. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  4426. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4427. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4428. "type": "harmony import specifier",
  4429. "userRequest": "../Misc/observable",
  4430. "loc": "179:39-49"
  4431. },
  4432. {
  4433. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  4434. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  4435. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4436. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4437. "type": "harmony import specifier",
  4438. "userRequest": "../Misc/observable",
  4439. "loc": "183:37-47"
  4440. },
  4441. {
  4442. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  4443. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  4444. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4445. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4446. "type": "harmony import specifier",
  4447. "userRequest": "../Misc/observable",
  4448. "loc": "296:45-55"
  4449. },
  4450. {
  4451. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  4452. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  4453. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4454. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4455. "type": "harmony side effect evaluation",
  4456. "userRequest": "./observable",
  4457. "loc": "4:0-42"
  4458. },
  4459. {
  4460. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  4461. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  4462. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4463. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4464. "type": "harmony import specifier",
  4465. "userRequest": "./observable",
  4466. "loc": "138:38-48"
  4467. },
  4468. {
  4469. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  4470. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  4471. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4472. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4473. "type": "harmony import specifier",
  4474. "userRequest": "./observable",
  4475. "loc": "185:38-48"
  4476. }
  4477. ],
  4478. "providedExports": [
  4479. "EventState",
  4480. "Observer",
  4481. "MultiObserver",
  4482. "Observable"
  4483. ],
  4484. "optimizationBailout": [],
  4485. "depth": 2,
  4486. "source": "/**\r\n * A class serves as a medium between the observable and its observers\r\n */\r\nvar EventState = /** @class */ (function () {\r\n /**\r\n * Create a new EventState\r\n * @param mask defines the mask associated with this state\r\n * @param skipNextObservers defines a flag which will instruct the observable to skip following observers when set to true\r\n * @param target defines the original target of the state\r\n * @param currentTarget defines the current target of the state\r\n */\r\n function EventState(mask, skipNextObservers, target, currentTarget) {\r\n if (skipNextObservers === void 0) { skipNextObservers = false; }\r\n this.initalize(mask, skipNextObservers, target, currentTarget);\r\n }\r\n /**\r\n * Initialize the current event state\r\n * @param mask defines the mask associated with this state\r\n * @param skipNextObservers defines a flag which will instruct the observable to skip following observers when set to true\r\n * @param target defines the original target of the state\r\n * @param currentTarget defines the current target of the state\r\n * @returns the current event state\r\n */\r\n EventState.prototype.initalize = function (mask, skipNextObservers, target, currentTarget) {\r\n if (skipNextObservers === void 0) { skipNextObservers = false; }\r\n this.mask = mask;\r\n this.skipNextObservers = skipNextObservers;\r\n this.target = target;\r\n this.currentTarget = currentTarget;\r\n return this;\r\n };\r\n return EventState;\r\n}());\r\nexport { EventState };\r\n/**\r\n * Represent an Observer registered to a given Observable object.\r\n */\r\nvar Observer = /** @class */ (function () {\r\n /**\r\n * Creates a new observer\r\n * @param callback defines the callback to call when the observer is notified\r\n * @param mask defines the mask of the observer (used to filter notifications)\r\n * @param scope defines the current scope used to restore the JS context\r\n */\r\n function Observer(\r\n /**\r\n * Defines the callback to call when the observer is notified\r\n */\r\n callback, \r\n /**\r\n * Defines the mask of the observer (used to filter notifications)\r\n */\r\n mask, \r\n /**\r\n * Defines the current scope used to restore the JS context\r\n */\r\n scope) {\r\n if (scope === void 0) { scope = null; }\r\n this.callback = callback;\r\n this.mask = mask;\r\n this.scope = scope;\r\n /** @hidden */\r\n this._willBeUnregistered = false;\r\n /**\r\n * Gets or sets a property defining that the observer as to be unregistered after the next notification\r\n */\r\n this.unregisterOnNextCall = false;\r\n }\r\n return Observer;\r\n}());\r\nexport { Observer };\r\n/**\r\n * Represent a list of observers registered to multiple Observables object.\r\n */\r\nvar MultiObserver = /** @class */ (function () {\r\n function MultiObserver() {\r\n }\r\n /**\r\n * Release associated resources\r\n */\r\n MultiObserver.prototype.dispose = function () {\r\n if (this._observers && this._observables) {\r\n for (var index = 0; index < this._observers.length; index++) {\r\n this._observables[index].remove(this._observers[index]);\r\n }\r\n }\r\n this._observers = null;\r\n this._observables = null;\r\n };\r\n /**\r\n * Raise a callback when one of the observable will notify\r\n * @param observables defines a list of observables to watch\r\n * @param callback defines the callback to call on notification\r\n * @param mask defines the mask used to filter notifications\r\n * @param scope defines the current scope used to restore the JS context\r\n * @returns the new MultiObserver\r\n */\r\n MultiObserver.Watch = function (observables, callback, mask, scope) {\r\n if (mask === void 0) { mask = -1; }\r\n if (scope === void 0) { scope = null; }\r\n var result = new MultiObserver();\r\n result._observers = new Array();\r\n result._observables = observables;\r\n for (var _i = 0, observables_1 = observables; _i < observables_1.length; _i++) {\r\n var observable = observables_1[_i];\r\n var observer = observable.add(callback, mask, false, scope);\r\n if (observer) {\r\n result._observers.push(observer);\r\n }\r\n }\r\n return result;\r\n };\r\n return MultiObserver;\r\n}());\r\nexport { MultiObserver };\r\n/**\r\n * The Observable class is a simple implementation of the Observable pattern.\r\n *\r\n * There's one slight particularity though: a given Observable can notify its observer using a particular mask value, only the Observers registered with this mask value will be notified.\r\n * This enable a more fine grained execution without having to rely on multiple different Observable objects.\r\n * For instance you may have a given Observable that have four different types of notifications: Move (mask = 0x01), Stop (mask = 0x02), Turn Right (mask = 0X04), Turn Left (mask = 0X08).\r\n * A given observer can register itself with only Move and Stop (mask = 0x03), then it will only be notified when one of these two occurs and will never be for Turn Left/Right.\r\n */\r\nvar Observable = /** @class */ (function () {\r\n /**\r\n * Creates a new observable\r\n * @param onObserverAdded defines a callback to call when a new observer is added\r\n */\r\n function Observable(onObserverAdded) {\r\n this._observers = new Array();\r\n this._eventState = new EventState(0);\r\n if (onObserverAdded) {\r\n this._onObserverAdded = onObserverAdded;\r\n }\r\n }\r\n Object.defineProperty(Observable.prototype, \"observers\", {\r\n /**\r\n * Gets the list of observers\r\n */\r\n get: function () {\r\n return this._observers;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Create a new Observer with the specified callback\r\n * @param callback the callback that will be executed for that Observer\r\n * @param mask the mask used to filter observers\r\n * @param insertFirst if true the callback will be inserted at the first position, hence executed before the others ones. If false (default behavior) the callback will be inserted at the last position, executed after all the others already present.\r\n * @param scope optional scope for the callback to be called from\r\n * @param unregisterOnFirstCall defines if the observer as to be unregistered after the next notification\r\n * @returns the new observer created for the callback\r\n */\r\n Observable.prototype.add = function (callback, mask, insertFirst, scope, unregisterOnFirstCall) {\r\n if (mask === void 0) { mask = -1; }\r\n if (insertFirst === void 0) { insertFirst = false; }\r\n if (scope === void 0) { scope = null; }\r\n if (unregisterOnFirstCall === void 0) { unregisterOnFirstCall = false; }\r\n if (!callback) {\r\n return null;\r\n }\r\n var observer = new Observer(callback, mask, scope);\r\n observer.unregisterOnNextCall = unregisterOnFirstCall;\r\n if (insertFirst) {\r\n this._observers.unshift(observer);\r\n }\r\n else {\r\n this._observers.push(observer);\r\n }\r\n if (this._onObserverAdded) {\r\n this._onObserverAdded(observer);\r\n }\r\n return observer;\r\n };\r\n /**\r\n * Create a new Observer with the specified callback and unregisters after the next notification\r\n * @param callback the callback that will be executed for that Observer\r\n * @returns the new observer created for the callback\r\n */\r\n Observable.prototype.addOnce = function (callback) {\r\n return this.add(callback, undefined, undefined, undefined, true);\r\n };\r\n /**\r\n * Remove an Observer from the Observable object\r\n * @param observer the instance of the Observer to remove\r\n * @returns false if it doesn't belong to this Observable\r\n */\r\n Observable.prototype.remove = function (observer) {\r\n if (!observer) {\r\n return false;\r\n }\r\n var index = this._observers.indexOf(observer);\r\n if (index !== -1) {\r\n this._deferUnregister(observer);\r\n return true;\r\n }\r\n return false;\r\n };\r\n /**\r\n * Remove a callback from the Observable object\r\n * @param callback the callback to remove\r\n * @param scope optional scope. If used only the callbacks with this scope will be removed\r\n * @returns false if it doesn't belong to this Observable\r\n */\r\n Observable.prototype.removeCallback = function (callback, scope) {\r\n for (var index = 0; index < this._observers.length; index++) {\r\n var observer = this._observers[index];\r\n if (observer._willBeUnregistered) {\r\n continue;\r\n }\r\n if (observer.callback === callback && (!scope || scope === observer.scope)) {\r\n this._deferUnregister(observer);\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Observable.prototype._deferUnregister = function (observer) {\r\n var _this = this;\r\n observer.unregisterOnNextCall = false;\r\n observer._willBeUnregistered = true;\r\n setTimeout(function () {\r\n _this._remove(observer);\r\n }, 0);\r\n };\r\n // This should only be called when not iterating over _observers to avoid callback skipping.\r\n // Removes an observer from the _observer Array.\r\n Observable.prototype._remove = function (observer) {\r\n if (!observer) {\r\n return false;\r\n }\r\n var index = this._observers.indexOf(observer);\r\n if (index !== -1) {\r\n this._observers.splice(index, 1);\r\n return true;\r\n }\r\n return false;\r\n };\r\n /**\r\n * Moves the observable to the top of the observer list making it get called first when notified\r\n * @param observer the observer to move\r\n */\r\n Observable.prototype.makeObserverTopPriority = function (observer) {\r\n this._remove(observer);\r\n this._observers.unshift(observer);\r\n };\r\n /**\r\n * Moves the observable to the bottom of the observer list making it get called last when notified\r\n * @param observer the observer to move\r\n */\r\n Observable.prototype.makeObserverBottomPriority = function (observer) {\r\n this._remove(observer);\r\n this._observers.push(observer);\r\n };\r\n /**\r\n * Notify all Observers by calling their respective callback with the given data\r\n * Will return true if all observers were executed, false if an observer set skipNextObservers to true, then prevent the subsequent ones to execute\r\n * @param eventData defines the data to send to all observers\r\n * @param mask defines the mask of the current notification (observers with incompatible mask (ie mask & observer.mask === 0) will not be notified)\r\n * @param target defines the original target of the state\r\n * @param currentTarget defines the current target of the state\r\n * @returns false if the complete observer chain was not processed (because one observer set the skipNextObservers to true)\r\n */\r\n Observable.prototype.notifyObservers = function (eventData, mask, target, currentTarget) {\r\n if (mask === void 0) { mask = -1; }\r\n if (!this._observers.length) {\r\n return true;\r\n }\r\n var state = this._eventState;\r\n state.mask = mask;\r\n state.target = target;\r\n state.currentTarget = currentTarget;\r\n state.skipNextObservers = false;\r\n state.lastReturnValue = eventData;\r\n for (var _i = 0, _a = this._observers; _i < _a.length; _i++) {\r\n var obs = _a[_i];\r\n if (obs._willBeUnregistered) {\r\n continue;\r\n }\r\n if (obs.mask & mask) {\r\n if (obs.scope) {\r\n state.lastReturnValue = obs.callback.apply(obs.scope, [eventData, state]);\r\n }\r\n else {\r\n state.lastReturnValue = obs.callback(eventData, state);\r\n }\r\n if (obs.unregisterOnNextCall) {\r\n this._deferUnregister(obs);\r\n }\r\n }\r\n if (state.skipNextObservers) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n /**\r\n * Calling this will execute each callback, expecting it to be a promise or return a value.\r\n * If at any point in the chain one function fails, the promise will fail and the execution will not continue.\r\n * This is useful when a chain of events (sometimes async events) is needed to initialize a certain object\r\n * and it is crucial that all callbacks will be executed.\r\n * The order of the callbacks is kept, callbacks are not executed parallel.\r\n *\r\n * @param eventData The data to be sent to each callback\r\n * @param mask is used to filter observers defaults to -1\r\n * @param target defines the callback target (see EventState)\r\n * @param currentTarget defines he current object in the bubbling phase\r\n * @returns {Promise<T>} will return a Promise than resolves when all callbacks executed successfully.\r\n */\r\n Observable.prototype.notifyObserversWithPromise = function (eventData, mask, target, currentTarget) {\r\n var _this = this;\r\n if (mask === void 0) { mask = -1; }\r\n // create an empty promise\r\n var p = Promise.resolve(eventData);\r\n // no observers? return this promise.\r\n if (!this._observers.length) {\r\n return p;\r\n }\r\n var state = this._eventState;\r\n state.mask = mask;\r\n state.target = target;\r\n state.currentTarget = currentTarget;\r\n state.skipNextObservers = false;\r\n // execute one callback after another (not using Promise.all, the order is important)\r\n this._observers.forEach(function (obs) {\r\n if (state.skipNextObservers) {\r\n return;\r\n }\r\n if (obs._willBeUnregistered) {\r\n return;\r\n }\r\n if (obs.mask & mask) {\r\n if (obs.scope) {\r\n p = p.then(function (lastReturnedValue) {\r\n state.lastReturnValue = lastReturnedValue;\r\n return obs.callback.apply(obs.scope, [eventData, state]);\r\n });\r\n }\r\n else {\r\n p = p.then(function (lastReturnedValue) {\r\n state.lastReturnValue = lastReturnedValue;\r\n return obs.callback(eventData, state);\r\n });\r\n }\r\n if (obs.unregisterOnNextCall) {\r\n _this._deferUnregister(obs);\r\n }\r\n }\r\n });\r\n // return the eventData\r\n return p.then(function () { return eventData; });\r\n };\r\n /**\r\n * Notify a specific observer\r\n * @param observer defines the observer to notify\r\n * @param eventData defines the data to be sent to each callback\r\n * @param mask is used to filter observers defaults to -1\r\n */\r\n Observable.prototype.notifyObserver = function (observer, eventData, mask) {\r\n if (mask === void 0) { mask = -1; }\r\n var state = this._eventState;\r\n state.mask = mask;\r\n state.skipNextObservers = false;\r\n observer.callback(eventData, state);\r\n };\r\n /**\r\n * Gets a boolean indicating if the observable has at least one observer\r\n * @returns true is the Observable has at least one Observer registered\r\n */\r\n Observable.prototype.hasObservers = function () {\r\n return this._observers.length > 0;\r\n };\r\n /**\r\n * Clear the list of observers\r\n */\r\n Observable.prototype.clear = function () {\r\n this._observers = new Array();\r\n this._onObserverAdded = null;\r\n };\r\n /**\r\n * Clone the current observable\r\n * @returns a new observable\r\n */\r\n Observable.prototype.clone = function () {\r\n var result = new Observable();\r\n result._observers = this._observers.slice(0);\r\n return result;\r\n };\r\n /**\r\n * Does this observable handles observer registered with a given mask\r\n * @param mask defines the mask to be tested\r\n * @return whether or not one observer registered with the given mask is handeled\r\n **/\r\n Observable.prototype.hasSpecificMask = function (mask) {\r\n if (mask === void 0) { mask = -1; }\r\n for (var _i = 0, _a = this._observers; _i < _a.length; _i++) {\r\n var obs = _a[_i];\r\n if (obs.mask & mask || obs.mask === mask) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n return Observable;\r\n}());\r\nexport { Observable };\r\n//# sourceMappingURL=observable.js.map"
  4487. },
  4488. {
  4489. "id": "../../.temp/packageES6Dev/core/Misc/perfCounter.js",
  4490. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\perfCounter.js",
  4491. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/perfCounter.js",
  4492. "index": 27,
  4493. "index2": 26,
  4494. "size": 6408,
  4495. "cacheable": true,
  4496. "built": true,
  4497. "optional": false,
  4498. "prefetched": false,
  4499. "chunks": [
  4500. "thinEngineOnly"
  4501. ],
  4502. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  4503. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  4504. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4505. "issuerPath": [
  4506. {
  4507. "id": "./thinEngineOnly.ts",
  4508. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  4509. "name": "./thinEngineOnly.ts",
  4510. "profile": {
  4511. "factory": 42,
  4512. "building": 2115
  4513. }
  4514. },
  4515. {
  4516. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  4517. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  4518. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4519. "profile": {
  4520. "factory": 6,
  4521. "building": 110
  4522. }
  4523. }
  4524. ],
  4525. "profile": {
  4526. "factory": 59,
  4527. "building": 41,
  4528. "dependencies": 4
  4529. },
  4530. "failed": false,
  4531. "errors": 0,
  4532. "warnings": 0,
  4533. "assets": [],
  4534. "reasons": [
  4535. {
  4536. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  4537. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  4538. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4539. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4540. "type": "harmony side effect evaluation",
  4541. "userRequest": "../Misc/perfCounter",
  4542. "loc": "6:0-50"
  4543. },
  4544. {
  4545. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  4546. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  4547. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4548. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4549. "type": "harmony import specifier",
  4550. "userRequest": "../Misc/perfCounter",
  4551. "loc": "83:30-41"
  4552. }
  4553. ],
  4554. "providedExports": [
  4555. "PerfCounter"
  4556. ],
  4557. "optimizationBailout": [],
  4558. "depth": 2,
  4559. "source": "import { PrecisionDate } from './precisionDate';\r\n/**\r\n * This class is used to track a performance counter which is number based.\r\n * The user has access to many properties which give statistics of different nature.\r\n *\r\n * The implementer can track two kinds of Performance Counter: time and count.\r\n * For time you can optionally call fetchNewFrame() to notify the start of a new frame to monitor, then call beginMonitoring() to start and endMonitoring() to record the lapsed time. endMonitoring takes a newFrame parameter for you to specify if the monitored time should be set for a new frame or accumulated to the current frame being monitored.\r\n * For count you first have to call fetchNewFrame() to notify the start of a new frame to monitor, then call addCount() how many time required to increment the count value you monitor.\r\n */\r\nvar PerfCounter = /** @class */ (function () {\r\n /**\r\n * Creates a new counter\r\n */\r\n function PerfCounter() {\r\n this._startMonitoringTime = 0;\r\n this._min = 0;\r\n this._max = 0;\r\n this._average = 0;\r\n this._lastSecAverage = 0;\r\n this._current = 0;\r\n this._totalValueCount = 0;\r\n this._totalAccumulated = 0;\r\n this._lastSecAccumulated = 0;\r\n this._lastSecTime = 0;\r\n this._lastSecValueCount = 0;\r\n }\r\n Object.defineProperty(PerfCounter.prototype, \"min\", {\r\n /**\r\n * Returns the smallest value ever\r\n */\r\n get: function () {\r\n return this._min;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PerfCounter.prototype, \"max\", {\r\n /**\r\n * Returns the biggest value ever\r\n */\r\n get: function () {\r\n return this._max;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PerfCounter.prototype, \"average\", {\r\n /**\r\n * Returns the average value since the performance counter is running\r\n */\r\n get: function () {\r\n return this._average;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PerfCounter.prototype, \"lastSecAverage\", {\r\n /**\r\n * Returns the average value of the last second the counter was monitored\r\n */\r\n get: function () {\r\n return this._lastSecAverage;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PerfCounter.prototype, \"current\", {\r\n /**\r\n * Returns the current value\r\n */\r\n get: function () {\r\n return this._current;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PerfCounter.prototype, \"total\", {\r\n /**\r\n * Gets the accumulated total\r\n */\r\n get: function () {\r\n return this._totalAccumulated;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PerfCounter.prototype, \"count\", {\r\n /**\r\n * Gets the total value count\r\n */\r\n get: function () {\r\n return this._totalValueCount;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Call this method to start monitoring a new frame.\r\n * This scenario is typically used when you accumulate monitoring time many times for a single frame, you call this method at the start of the frame, then beginMonitoring to start recording and endMonitoring(false) to accumulated the recorded time to the PerfCounter or addCount() to accumulate a monitored count.\r\n */\r\n PerfCounter.prototype.fetchNewFrame = function () {\r\n this._totalValueCount++;\r\n this._current = 0;\r\n this._lastSecValueCount++;\r\n };\r\n /**\r\n * Call this method to monitor a count of something (e.g. mesh drawn in viewport count)\r\n * @param newCount the count value to add to the monitored count\r\n * @param fetchResult true when it's the last time in the frame you add to the counter and you wish to update the statistics properties (min/max/average), false if you only want to update statistics.\r\n */\r\n PerfCounter.prototype.addCount = function (newCount, fetchResult) {\r\n if (!PerfCounter.Enabled) {\r\n return;\r\n }\r\n this._current += newCount;\r\n if (fetchResult) {\r\n this._fetchResult();\r\n }\r\n };\r\n /**\r\n * Start monitoring this performance counter\r\n */\r\n PerfCounter.prototype.beginMonitoring = function () {\r\n if (!PerfCounter.Enabled) {\r\n return;\r\n }\r\n this._startMonitoringTime = PrecisionDate.Now;\r\n };\r\n /**\r\n * Compute the time lapsed since the previous beginMonitoring() call.\r\n * @param newFrame true by default to fetch the result and monitor a new frame, if false the time monitored will be added to the current frame counter\r\n */\r\n PerfCounter.prototype.endMonitoring = function (newFrame) {\r\n if (newFrame === void 0) { newFrame = true; }\r\n if (!PerfCounter.Enabled) {\r\n return;\r\n }\r\n if (newFrame) {\r\n this.fetchNewFrame();\r\n }\r\n var currentTime = PrecisionDate.Now;\r\n this._current = currentTime - this._startMonitoringTime;\r\n if (newFrame) {\r\n this._fetchResult();\r\n }\r\n };\r\n PerfCounter.prototype._fetchResult = function () {\r\n this._totalAccumulated += this._current;\r\n this._lastSecAccumulated += this._current;\r\n // Min/Max update\r\n this._min = Math.min(this._min, this._current);\r\n this._max = Math.max(this._max, this._current);\r\n this._average = this._totalAccumulated / this._totalValueCount;\r\n // Reset last sec?\r\n var now = PrecisionDate.Now;\r\n if ((now - this._lastSecTime) > 1000) {\r\n this._lastSecAverage = this._lastSecAccumulated / this._lastSecValueCount;\r\n this._lastSecTime = now;\r\n this._lastSecAccumulated = 0;\r\n this._lastSecValueCount = 0;\r\n }\r\n };\r\n /**\r\n * Gets or sets a global boolean to turn on and off all the counters\r\n */\r\n PerfCounter.Enabled = true;\r\n return PerfCounter;\r\n}());\r\nexport { PerfCounter };\r\n//# sourceMappingURL=perfCounter.js.map"
  4560. },
  4561. {
  4562. "id": "../../.temp/packageES6Dev/core/Misc/precisionDate.js",
  4563. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\precisionDate.js",
  4564. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/precisionDate.js",
  4565. "index": 28,
  4566. "index2": 25,
  4567. "size": 790,
  4568. "cacheable": true,
  4569. "built": true,
  4570. "optional": false,
  4571. "prefetched": false,
  4572. "chunks": [
  4573. "thinEngineOnly"
  4574. ],
  4575. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\perfCounter.js",
  4576. "issuerId": "../../.temp/packageES6Dev/core/Misc/perfCounter.js",
  4577. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/perfCounter.js",
  4578. "issuerPath": [
  4579. {
  4580. "id": "./thinEngineOnly.ts",
  4581. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  4582. "name": "./thinEngineOnly.ts",
  4583. "profile": {
  4584. "factory": 42,
  4585. "building": 2115
  4586. }
  4587. },
  4588. {
  4589. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  4590. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  4591. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4592. "profile": {
  4593. "factory": 6,
  4594. "building": 110
  4595. }
  4596. },
  4597. {
  4598. "id": "../../.temp/packageES6Dev/core/Misc/perfCounter.js",
  4599. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\perfCounter.js",
  4600. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/perfCounter.js",
  4601. "profile": {
  4602. "factory": 59,
  4603. "building": 41,
  4604. "dependencies": 4
  4605. }
  4606. }
  4607. ],
  4608. "profile": {
  4609. "factory": 69,
  4610. "building": 15,
  4611. "dependencies": 0
  4612. },
  4613. "failed": false,
  4614. "errors": 0,
  4615. "warnings": 0,
  4616. "assets": [],
  4617. "reasons": [
  4618. {
  4619. "moduleId": "../../.temp/packageES6Dev/core/Misc/perfCounter.js",
  4620. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\perfCounter.js",
  4621. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/perfCounter.js",
  4622. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/perfCounter.js",
  4623. "type": "harmony side effect evaluation",
  4624. "userRequest": "./precisionDate",
  4625. "loc": "1:0-48"
  4626. },
  4627. {
  4628. "moduleId": "../../.temp/packageES6Dev/core/Misc/perfCounter.js",
  4629. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\perfCounter.js",
  4630. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/perfCounter.js",
  4631. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/perfCounter.js",
  4632. "type": "harmony import specifier",
  4633. "userRequest": "./precisionDate",
  4634. "loc": "127:36-49"
  4635. },
  4636. {
  4637. "moduleId": "../../.temp/packageES6Dev/core/Misc/perfCounter.js",
  4638. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\perfCounter.js",
  4639. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/perfCounter.js",
  4640. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/perfCounter.js",
  4641. "type": "harmony import specifier",
  4642. "userRequest": "./precisionDate",
  4643. "loc": "141:26-39"
  4644. },
  4645. {
  4646. "moduleId": "../../.temp/packageES6Dev/core/Misc/perfCounter.js",
  4647. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\perfCounter.js",
  4648. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/perfCounter.js",
  4649. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/perfCounter.js",
  4650. "type": "harmony import specifier",
  4651. "userRequest": "./precisionDate",
  4652. "loc": "155:18-31"
  4653. }
  4654. ],
  4655. "providedExports": [
  4656. "PrecisionDate"
  4657. ],
  4658. "optimizationBailout": [],
  4659. "depth": 3,
  4660. "source": "import { DomManagement } from './domManagement';\r\n/**\r\n * Class containing a set of static utilities functions for precision date\r\n */\r\nvar PrecisionDate = /** @class */ (function () {\r\n function PrecisionDate() {\r\n }\r\n Object.defineProperty(PrecisionDate, \"Now\", {\r\n /**\r\n * Gets either window.performance.now() if supported or Date.now() else\r\n */\r\n get: function () {\r\n if (DomManagement.IsWindowObjectExist() && window.performance && window.performance.now) {\r\n return window.performance.now();\r\n }\r\n return Date.now();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return PrecisionDate;\r\n}());\r\nexport { PrecisionDate };\r\n//# sourceMappingURL=precisionDate.js.map"
  4661. },
  4662. {
  4663. "id": "../../.temp/packageES6Dev/core/Misc/retryStrategy.js",
  4664. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\retryStrategy.js",
  4665. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/retryStrategy.js",
  4666. "index": 24,
  4667. "index2": 19,
  4668. "size": 1030,
  4669. "cacheable": true,
  4670. "built": true,
  4671. "optional": false,
  4672. "prefetched": false,
  4673. "chunks": [
  4674. "thinEngineOnly"
  4675. ],
  4676. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  4677. "issuerId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  4678. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4679. "issuerPath": [
  4680. {
  4681. "id": "./thinEngineOnly.ts",
  4682. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  4683. "name": "./thinEngineOnly.ts",
  4684. "profile": {
  4685. "factory": 42,
  4686. "building": 2115
  4687. }
  4688. },
  4689. {
  4690. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  4691. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  4692. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4693. "profile": {
  4694. "factory": 6,
  4695. "building": 110
  4696. }
  4697. },
  4698. {
  4699. "id": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  4700. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  4701. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4702. "profile": {
  4703. "factory": 59,
  4704. "building": 41,
  4705. "dependencies": 4
  4706. }
  4707. }
  4708. ],
  4709. "profile": {
  4710. "factory": 61,
  4711. "building": 8,
  4712. "dependencies": 2
  4713. },
  4714. "failed": false,
  4715. "errors": 0,
  4716. "warnings": 0,
  4717. "assets": [],
  4718. "reasons": [
  4719. {
  4720. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  4721. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  4722. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4723. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4724. "type": "harmony side effect evaluation",
  4725. "userRequest": "./retryStrategy",
  4726. "loc": "6:0-48"
  4727. },
  4728. {
  4729. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  4730. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  4731. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4732. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4733. "type": "harmony import specifier",
  4734. "userRequest": "./retryStrategy",
  4735. "loc": "301:37-50"
  4736. }
  4737. ],
  4738. "providedExports": [
  4739. "RetryStrategy"
  4740. ],
  4741. "optimizationBailout": [],
  4742. "depth": 3,
  4743. "source": "/**\r\n * Class used to define a retry strategy when error happens while loading assets\r\n */\r\nvar RetryStrategy = /** @class */ (function () {\r\n function RetryStrategy() {\r\n }\r\n /**\r\n * Function used to defines an exponential back off strategy\r\n * @param maxRetries defines the maximum number of retries (3 by default)\r\n * @param baseInterval defines the interval between retries\r\n * @returns the strategy function to use\r\n */\r\n RetryStrategy.ExponentialBackoff = function (maxRetries, baseInterval) {\r\n if (maxRetries === void 0) { maxRetries = 3; }\r\n if (baseInterval === void 0) { baseInterval = 500; }\r\n return function (url, request, retryIndex) {\r\n if (request.status !== 0 || retryIndex >= maxRetries || url.indexOf(\"file:\") !== -1) {\r\n return -1;\r\n }\r\n return Math.pow(2, retryIndex) * baseInterval;\r\n };\r\n };\r\n return RetryStrategy;\r\n}());\r\nexport { RetryStrategy };\r\n//# sourceMappingURL=retryStrategy.js.map"
  4744. },
  4745. {
  4746. "id": "../../.temp/packageES6Dev/core/Misc/stringTools.js",
  4747. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\stringTools.js",
  4748. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/stringTools.js",
  4749. "index": 11,
  4750. "index2": 6,
  4751. "size": 1033,
  4752. "cacheable": true,
  4753. "built": true,
  4754. "optional": false,
  4755. "prefetched": false,
  4756. "chunks": [
  4757. "thinEngineOnly"
  4758. ],
  4759. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeNode.js",
  4760. "issuerId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  4761. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  4762. "issuerPath": [
  4763. {
  4764. "id": "./thinEngineOnly.ts",
  4765. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  4766. "name": "./thinEngineOnly.ts",
  4767. "profile": {
  4768. "factory": 42,
  4769. "building": 2115
  4770. }
  4771. },
  4772. {
  4773. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  4774. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  4775. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4776. "profile": {
  4777. "factory": 6,
  4778. "building": 110
  4779. }
  4780. },
  4781. {
  4782. "id": "../../.temp/packageES6Dev/core/Materials/effect.js",
  4783. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  4784. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  4785. "profile": {
  4786. "factory": 59,
  4787. "building": 41,
  4788. "dependencies": 4
  4789. }
  4790. },
  4791. {
  4792. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  4793. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  4794. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  4795. "profile": {
  4796. "factory": 25,
  4797. "building": 9,
  4798. "dependencies": 2
  4799. }
  4800. },
  4801. {
  4802. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  4803. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeNode.js",
  4804. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  4805. "profile": {
  4806. "factory": 6,
  4807. "building": 12,
  4808. "dependencies": 4
  4809. }
  4810. }
  4811. ],
  4812. "profile": {
  4813. "factory": 12,
  4814. "building": 1
  4815. },
  4816. "failed": false,
  4817. "errors": 0,
  4818. "warnings": 0,
  4819. "assets": [],
  4820. "reasons": [
  4821. {
  4822. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  4823. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeNode.js",
  4824. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  4825. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  4826. "type": "harmony side effect evaluation",
  4827. "userRequest": "../../Misc/stringTools",
  4828. "loc": "1:0-53"
  4829. },
  4830. {
  4831. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  4832. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeNode.js",
  4833. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  4834. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  4835. "type": "harmony import specifier",
  4836. "userRequest": "../../Misc/stringTools",
  4837. "loc": "20:52-63"
  4838. },
  4839. {
  4840. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  4841. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeNode.js",
  4842. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  4843. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  4844. "type": "harmony import specifier",
  4845. "userRequest": "../../Misc/stringTools",
  4846. "loc": "23:55-66"
  4847. },
  4848. {
  4849. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  4850. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeNode.js",
  4851. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  4852. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  4853. "type": "harmony import specifier",
  4854. "userRequest": "../../Misc/stringTools",
  4855. "loc": "26:93-104"
  4856. }
  4857. ],
  4858. "providedExports": [
  4859. "StringTools"
  4860. ],
  4861. "optimizationBailout": [],
  4862. "depth": 5,
  4863. "source": "/**\r\n * Helper to manipulate strings\r\n */\r\nvar StringTools = /** @class */ (function () {\r\n function StringTools() {\r\n }\r\n /**\r\n * Checks for a matching suffix at the end of a string (for ES5 and lower)\r\n * @param str Source string\r\n * @param suffix Suffix to search for in the source string\r\n * @returns Boolean indicating whether the suffix was found (true) or not (false)\r\n */\r\n StringTools.EndsWith = function (str, suffix) {\r\n return str.indexOf(suffix, str.length - suffix.length) !== -1;\r\n };\r\n /**\r\n * Checks for a matching suffix at the beginning of a string (for ES5 and lower)\r\n * @param str Source string\r\n * @param suffix Suffix to search for in the source string\r\n * @returns Boolean indicating whether the suffix was found (true) or not (false)\r\n */\r\n StringTools.StartsWith = function (str, suffix) {\r\n return str.indexOf(suffix) === 0;\r\n };\r\n return StringTools;\r\n}());\r\nexport { StringTools };\r\n//# sourceMappingURL=stringTools.js.map"
  4864. },
  4865. {
  4866. "id": "../../.temp/packageES6Dev/core/Misc/webRequest.js",
  4867. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\webRequest.js",
  4868. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/webRequest.js",
  4869. "index": 21,
  4870. "index2": 16,
  4871. "size": 4915,
  4872. "cacheable": true,
  4873. "built": true,
  4874. "optional": false,
  4875. "prefetched": false,
  4876. "chunks": [
  4877. "thinEngineOnly"
  4878. ],
  4879. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  4880. "issuerId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  4881. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4882. "issuerPath": [
  4883. {
  4884. "id": "./thinEngineOnly.ts",
  4885. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  4886. "name": "./thinEngineOnly.ts",
  4887. "profile": {
  4888. "factory": 42,
  4889. "building": 2115
  4890. }
  4891. },
  4892. {
  4893. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  4894. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  4895. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4896. "profile": {
  4897. "factory": 6,
  4898. "building": 110
  4899. }
  4900. },
  4901. {
  4902. "id": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  4903. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  4904. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4905. "profile": {
  4906. "factory": 59,
  4907. "building": 41,
  4908. "dependencies": 4
  4909. }
  4910. }
  4911. ],
  4912. "profile": {
  4913. "factory": 61,
  4914. "building": 8,
  4915. "dependencies": 2
  4916. },
  4917. "failed": false,
  4918. "errors": 0,
  4919. "warnings": 0,
  4920. "assets": [],
  4921. "reasons": [
  4922. {
  4923. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  4924. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  4925. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4926. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4927. "type": "harmony side effect evaluation",
  4928. "userRequest": "./webRequest",
  4929. "loc": "1:0-42"
  4930. },
  4931. {
  4932. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  4933. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  4934. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4935. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4936. "type": "harmony import specifier",
  4937. "userRequest": "./webRequest",
  4938. "loc": "189:30-40"
  4939. },
  4940. {
  4941. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  4942. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  4943. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4944. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  4945. "type": "harmony import specifier",
  4946. "userRequest": "./webRequest",
  4947. "loc": "233:46-56"
  4948. }
  4949. ],
  4950. "providedExports": [
  4951. "WebRequest"
  4952. ],
  4953. "optimizationBailout": [],
  4954. "depth": 3,
  4955. "source": "/**\r\n * Extended version of XMLHttpRequest with support for customizations (headers, ...)\r\n */\r\nvar WebRequest = /** @class */ (function () {\r\n function WebRequest() {\r\n this._xhr = new XMLHttpRequest();\r\n }\r\n WebRequest.prototype._injectCustomRequestHeaders = function () {\r\n for (var key in WebRequest.CustomRequestHeaders) {\r\n var val = WebRequest.CustomRequestHeaders[key];\r\n if (val) {\r\n this._xhr.setRequestHeader(key, val);\r\n }\r\n }\r\n };\r\n Object.defineProperty(WebRequest.prototype, \"onprogress\", {\r\n /**\r\n * Gets or sets a function to be called when loading progress changes\r\n */\r\n get: function () {\r\n return this._xhr.onprogress;\r\n },\r\n set: function (value) {\r\n this._xhr.onprogress = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WebRequest.prototype, \"readyState\", {\r\n /**\r\n * Returns client's state\r\n */\r\n get: function () {\r\n return this._xhr.readyState;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WebRequest.prototype, \"status\", {\r\n /**\r\n * Returns client's status\r\n */\r\n get: function () {\r\n return this._xhr.status;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WebRequest.prototype, \"statusText\", {\r\n /**\r\n * Returns client's status as a text\r\n */\r\n get: function () {\r\n return this._xhr.statusText;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WebRequest.prototype, \"response\", {\r\n /**\r\n * Returns client's response\r\n */\r\n get: function () {\r\n return this._xhr.response;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WebRequest.prototype, \"responseURL\", {\r\n /**\r\n * Returns client's response url\r\n */\r\n get: function () {\r\n return this._xhr.responseURL;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WebRequest.prototype, \"responseText\", {\r\n /**\r\n * Returns client's response as text\r\n */\r\n get: function () {\r\n return this._xhr.responseText;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WebRequest.prototype, \"responseType\", {\r\n /**\r\n * Gets or sets the expected response type\r\n */\r\n get: function () {\r\n return this._xhr.responseType;\r\n },\r\n set: function (value) {\r\n this._xhr.responseType = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n WebRequest.prototype.addEventListener = function (type, listener, options) {\r\n this._xhr.addEventListener(type, listener, options);\r\n };\r\n WebRequest.prototype.removeEventListener = function (type, listener, options) {\r\n this._xhr.removeEventListener(type, listener, options);\r\n };\r\n /**\r\n * Cancels any network activity\r\n */\r\n WebRequest.prototype.abort = function () {\r\n this._xhr.abort();\r\n };\r\n /**\r\n * Initiates the request. The optional argument provides the request body. The argument is ignored if request method is GET or HEAD\r\n * @param body defines an optional request body\r\n */\r\n WebRequest.prototype.send = function (body) {\r\n if (WebRequest.CustomRequestHeaders) {\r\n this._injectCustomRequestHeaders();\r\n }\r\n this._xhr.send(body);\r\n };\r\n /**\r\n * Sets the request method, request URL\r\n * @param method defines the method to use (GET, POST, etc..)\r\n * @param url defines the url to connect with\r\n */\r\n WebRequest.prototype.open = function (method, url) {\r\n for (var _i = 0, _a = WebRequest.CustomRequestModifiers; _i < _a.length; _i++) {\r\n var update = _a[_i];\r\n update(this._xhr, url);\r\n }\r\n // Clean url\r\n url = url.replace(\"file:http:\", \"http:\");\r\n url = url.replace(\"file:https:\", \"https:\");\r\n return this._xhr.open(method, url, true);\r\n };\r\n /**\r\n * Custom HTTP Request Headers to be sent with XMLHttpRequests\r\n * i.e. when loading files, where the server/service expects an Authorization header\r\n */\r\n WebRequest.CustomRequestHeaders = {};\r\n /**\r\n * Add callback functions in this array to update all the requests before they get sent to the network\r\n */\r\n WebRequest.CustomRequestModifiers = new Array();\r\n return WebRequest;\r\n}());\r\nexport { WebRequest };\r\n//# sourceMappingURL=webRequest.js.map"
  4956. },
  4957. {
  4958. "id": "../../.temp/packageES6Dev/core/States/alphaCullingState.js",
  4959. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\States\\alphaCullingState.js",
  4960. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/States/alphaCullingState.js",
  4961. "index": 31,
  4962. "index2": 29,
  4963. "size": 4862,
  4964. "cacheable": true,
  4965. "built": true,
  4966. "optional": false,
  4967. "prefetched": false,
  4968. "chunks": [
  4969. "thinEngineOnly"
  4970. ],
  4971. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  4972. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  4973. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4974. "issuerPath": [
  4975. {
  4976. "id": "./thinEngineOnly.ts",
  4977. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  4978. "name": "./thinEngineOnly.ts",
  4979. "profile": {
  4980. "factory": 42,
  4981. "building": 2115
  4982. }
  4983. },
  4984. {
  4985. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  4986. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  4987. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  4988. "profile": {
  4989. "factory": 6,
  4990. "building": 110
  4991. }
  4992. }
  4993. ],
  4994. "profile": {
  4995. "factory": 59,
  4996. "building": 41,
  4997. "dependencies": 4
  4998. },
  4999. "failed": false,
  5000. "errors": 0,
  5001. "warnings": 0,
  5002. "assets": [],
  5003. "reasons": [
  5004. {
  5005. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  5006. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  5007. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  5008. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  5009. "type": "harmony side effect evaluation",
  5010. "userRequest": "../States/alphaCullingState",
  5011. "loc": "10:0-57"
  5012. },
  5013. {
  5014. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  5015. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  5016. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  5017. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  5018. "type": "harmony import specifier",
  5019. "userRequest": "../States/alphaCullingState",
  5020. "loc": "108:31-41"
  5021. }
  5022. ],
  5023. "providedExports": [
  5024. "AlphaState"
  5025. ],
  5026. "optimizationBailout": [],
  5027. "depth": 2,
  5028. "source": "/**\r\n * @hidden\r\n **/\r\nvar AlphaState = /** @class */ (function () {\r\n /**\r\n * Initializes the state.\r\n */\r\n function AlphaState() {\r\n this._isAlphaBlendDirty = false;\r\n this._isBlendFunctionParametersDirty = false;\r\n this._isBlendEquationParametersDirty = false;\r\n this._isBlendConstantsDirty = false;\r\n this._alphaBlend = false;\r\n this._blendFunctionParameters = new Array(4);\r\n this._blendEquationParameters = new Array(2);\r\n this._blendConstants = new Array(4);\r\n this.reset();\r\n }\r\n Object.defineProperty(AlphaState.prototype, \"isDirty\", {\r\n get: function () {\r\n return this._isAlphaBlendDirty || this._isBlendFunctionParametersDirty;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AlphaState.prototype, \"alphaBlend\", {\r\n get: function () {\r\n return this._alphaBlend;\r\n },\r\n set: function (value) {\r\n if (this._alphaBlend === value) {\r\n return;\r\n }\r\n this._alphaBlend = value;\r\n this._isAlphaBlendDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n AlphaState.prototype.setAlphaBlendConstants = function (r, g, b, a) {\r\n if (this._blendConstants[0] === r &&\r\n this._blendConstants[1] === g &&\r\n this._blendConstants[2] === b &&\r\n this._blendConstants[3] === a) {\r\n return;\r\n }\r\n this._blendConstants[0] = r;\r\n this._blendConstants[1] = g;\r\n this._blendConstants[2] = b;\r\n this._blendConstants[3] = a;\r\n this._isBlendConstantsDirty = true;\r\n };\r\n AlphaState.prototype.setAlphaBlendFunctionParameters = function (value0, value1, value2, value3) {\r\n if (this._blendFunctionParameters[0] === value0 &&\r\n this._blendFunctionParameters[1] === value1 &&\r\n this._blendFunctionParameters[2] === value2 &&\r\n this._blendFunctionParameters[3] === value3) {\r\n return;\r\n }\r\n this._blendFunctionParameters[0] = value0;\r\n this._blendFunctionParameters[1] = value1;\r\n this._blendFunctionParameters[2] = value2;\r\n this._blendFunctionParameters[3] = value3;\r\n this._isBlendFunctionParametersDirty = true;\r\n };\r\n AlphaState.prototype.setAlphaEquationParameters = function (rgb, alpha) {\r\n if (this._blendEquationParameters[0] === rgb &&\r\n this._blendEquationParameters[1] === alpha) {\r\n return;\r\n }\r\n this._blendEquationParameters[0] = rgb;\r\n this._blendEquationParameters[1] = alpha;\r\n this._isBlendEquationParametersDirty = true;\r\n };\r\n AlphaState.prototype.reset = function () {\r\n this._alphaBlend = false;\r\n this._blendFunctionParameters[0] = null;\r\n this._blendFunctionParameters[1] = null;\r\n this._blendFunctionParameters[2] = null;\r\n this._blendFunctionParameters[3] = null;\r\n this._blendEquationParameters[0] = null;\r\n this._blendEquationParameters[1] = null;\r\n this._blendConstants[0] = null;\r\n this._blendConstants[1] = null;\r\n this._blendConstants[2] = null;\r\n this._blendConstants[3] = null;\r\n this._isAlphaBlendDirty = true;\r\n this._isBlendFunctionParametersDirty = false;\r\n this._isBlendEquationParametersDirty = false;\r\n this._isBlendConstantsDirty = false;\r\n };\r\n AlphaState.prototype.apply = function (gl) {\r\n if (!this.isDirty) {\r\n return;\r\n }\r\n // Alpha blend\r\n if (this._isAlphaBlendDirty) {\r\n if (this._alphaBlend) {\r\n gl.enable(gl.BLEND);\r\n }\r\n else {\r\n gl.disable(gl.BLEND);\r\n }\r\n this._isAlphaBlendDirty = false;\r\n }\r\n // Alpha function\r\n if (this._isBlendFunctionParametersDirty) {\r\n gl.blendFuncSeparate(this._blendFunctionParameters[0], this._blendFunctionParameters[1], this._blendFunctionParameters[2], this._blendFunctionParameters[3]);\r\n this._isBlendFunctionParametersDirty = false;\r\n }\r\n // Alpha equation\r\n if (this._isBlendEquationParametersDirty) {\r\n gl.blendEquationSeparate(this._blendEquationParameters[0], this._blendEquationParameters[1]);\r\n this._isBlendEquationParametersDirty = false;\r\n }\r\n // Constants\r\n if (this._isBlendConstantsDirty) {\r\n gl.blendColor(this._blendConstants[0], this._blendConstants[1], this._blendConstants[2], this._blendConstants[3]);\r\n this._isBlendConstantsDirty = false;\r\n }\r\n };\r\n return AlphaState;\r\n}());\r\nexport { AlphaState };\r\n//# sourceMappingURL=alphaCullingState.js.map"
  5029. },
  5030. {
  5031. "id": "../../.temp/packageES6Dev/core/States/depthCullingState.js",
  5032. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\States\\depthCullingState.js",
  5033. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/States/depthCullingState.js",
  5034. "index": 29,
  5035. "index2": 27,
  5036. "size": 6119,
  5037. "cacheable": true,
  5038. "built": true,
  5039. "optional": false,
  5040. "prefetched": false,
  5041. "chunks": [
  5042. "thinEngineOnly"
  5043. ],
  5044. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  5045. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  5046. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  5047. "issuerPath": [
  5048. {
  5049. "id": "./thinEngineOnly.ts",
  5050. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  5051. "name": "./thinEngineOnly.ts",
  5052. "profile": {
  5053. "factory": 42,
  5054. "building": 2115
  5055. }
  5056. },
  5057. {
  5058. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  5059. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  5060. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  5061. "profile": {
  5062. "factory": 6,
  5063. "building": 110
  5064. }
  5065. }
  5066. ],
  5067. "profile": {
  5068. "factory": 59,
  5069. "building": 41,
  5070. "dependencies": 4
  5071. },
  5072. "failed": false,
  5073. "errors": 0,
  5074. "warnings": 0,
  5075. "assets": [],
  5076. "reasons": [
  5077. {
  5078. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  5079. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  5080. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  5081. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  5082. "type": "harmony side effect evaluation",
  5083. "userRequest": "../States/depthCullingState",
  5084. "loc": "8:0-64"
  5085. },
  5086. {
  5087. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  5088. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  5089. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  5090. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  5091. "type": "harmony import specifier",
  5092. "userRequest": "../States/depthCullingState",
  5093. "loc": "104:38-55"
  5094. }
  5095. ],
  5096. "providedExports": [
  5097. "DepthCullingState"
  5098. ],
  5099. "optimizationBailout": [],
  5100. "depth": 2,
  5101. "source": "/**\r\n * @hidden\r\n **/\r\nvar DepthCullingState = /** @class */ (function () {\r\n /**\r\n * Initializes the state.\r\n */\r\n function DepthCullingState() {\r\n this._isDepthTestDirty = false;\r\n this._isDepthMaskDirty = false;\r\n this._isDepthFuncDirty = false;\r\n this._isCullFaceDirty = false;\r\n this._isCullDirty = false;\r\n this._isZOffsetDirty = false;\r\n this._isFrontFaceDirty = false;\r\n this.reset();\r\n }\r\n Object.defineProperty(DepthCullingState.prototype, \"isDirty\", {\r\n get: function () {\r\n return this._isDepthFuncDirty || this._isDepthTestDirty || this._isDepthMaskDirty || this._isCullFaceDirty || this._isCullDirty || this._isZOffsetDirty || this._isFrontFaceDirty;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DepthCullingState.prototype, \"zOffset\", {\r\n get: function () {\r\n return this._zOffset;\r\n },\r\n set: function (value) {\r\n if (this._zOffset === value) {\r\n return;\r\n }\r\n this._zOffset = value;\r\n this._isZOffsetDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DepthCullingState.prototype, \"cullFace\", {\r\n get: function () {\r\n return this._cullFace;\r\n },\r\n set: function (value) {\r\n if (this._cullFace === value) {\r\n return;\r\n }\r\n this._cullFace = value;\r\n this._isCullFaceDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DepthCullingState.prototype, \"cull\", {\r\n get: function () {\r\n return this._cull;\r\n },\r\n set: function (value) {\r\n if (this._cull === value) {\r\n return;\r\n }\r\n this._cull = value;\r\n this._isCullDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DepthCullingState.prototype, \"depthFunc\", {\r\n get: function () {\r\n return this._depthFunc;\r\n },\r\n set: function (value) {\r\n if (this._depthFunc === value) {\r\n return;\r\n }\r\n this._depthFunc = value;\r\n this._isDepthFuncDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DepthCullingState.prototype, \"depthMask\", {\r\n get: function () {\r\n return this._depthMask;\r\n },\r\n set: function (value) {\r\n if (this._depthMask === value) {\r\n return;\r\n }\r\n this._depthMask = value;\r\n this._isDepthMaskDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DepthCullingState.prototype, \"depthTest\", {\r\n get: function () {\r\n return this._depthTest;\r\n },\r\n set: function (value) {\r\n if (this._depthTest === value) {\r\n return;\r\n }\r\n this._depthTest = value;\r\n this._isDepthTestDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DepthCullingState.prototype, \"frontFace\", {\r\n get: function () {\r\n return this._frontFace;\r\n },\r\n set: function (value) {\r\n if (this._frontFace === value) {\r\n return;\r\n }\r\n this._frontFace = value;\r\n this._isFrontFaceDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n DepthCullingState.prototype.reset = function () {\r\n this._depthMask = true;\r\n this._depthTest = true;\r\n this._depthFunc = null;\r\n this._cullFace = null;\r\n this._cull = null;\r\n this._zOffset = 0;\r\n this._frontFace = null;\r\n this._isDepthTestDirty = true;\r\n this._isDepthMaskDirty = true;\r\n this._isDepthFuncDirty = false;\r\n this._isCullFaceDirty = false;\r\n this._isCullDirty = false;\r\n this._isZOffsetDirty = false;\r\n this._isFrontFaceDirty = false;\r\n };\r\n DepthCullingState.prototype.apply = function (gl) {\r\n if (!this.isDirty) {\r\n return;\r\n }\r\n // Cull\r\n if (this._isCullDirty) {\r\n if (this.cull) {\r\n gl.enable(gl.CULL_FACE);\r\n }\r\n else {\r\n gl.disable(gl.CULL_FACE);\r\n }\r\n this._isCullDirty = false;\r\n }\r\n // Cull face\r\n if (this._isCullFaceDirty) {\r\n gl.cullFace(this.cullFace);\r\n this._isCullFaceDirty = false;\r\n }\r\n // Depth mask\r\n if (this._isDepthMaskDirty) {\r\n gl.depthMask(this.depthMask);\r\n this._isDepthMaskDirty = false;\r\n }\r\n // Depth test\r\n if (this._isDepthTestDirty) {\r\n if (this.depthTest) {\r\n gl.enable(gl.DEPTH_TEST);\r\n }\r\n else {\r\n gl.disable(gl.DEPTH_TEST);\r\n }\r\n this._isDepthTestDirty = false;\r\n }\r\n // Depth func\r\n if (this._isDepthFuncDirty) {\r\n gl.depthFunc(this.depthFunc);\r\n this._isDepthFuncDirty = false;\r\n }\r\n // zOffset\r\n if (this._isZOffsetDirty) {\r\n if (this.zOffset) {\r\n gl.enable(gl.POLYGON_OFFSET_FILL);\r\n gl.polygonOffset(this.zOffset, 0);\r\n }\r\n else {\r\n gl.disable(gl.POLYGON_OFFSET_FILL);\r\n }\r\n this._isZOffsetDirty = false;\r\n }\r\n // Front face\r\n if (this._isFrontFaceDirty) {\r\n gl.frontFace(this.frontFace);\r\n this._isFrontFaceDirty = false;\r\n }\r\n };\r\n return DepthCullingState;\r\n}());\r\nexport { DepthCullingState };\r\n//# sourceMappingURL=depthCullingState.js.map"
  5102. },
  5103. {
  5104. "id": "../../.temp/packageES6Dev/core/States/stencilState.js",
  5105. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\States\\stencilState.js",
  5106. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/States/stencilState.js",
  5107. "index": 30,
  5108. "index2": 28,
  5109. "size": 6427,
  5110. "cacheable": true,
  5111. "built": true,
  5112. "optional": false,
  5113. "prefetched": false,
  5114. "chunks": [
  5115. "thinEngineOnly"
  5116. ],
  5117. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  5118. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  5119. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  5120. "issuerPath": [
  5121. {
  5122. "id": "./thinEngineOnly.ts",
  5123. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  5124. "name": "./thinEngineOnly.ts",
  5125. "profile": {
  5126. "factory": 42,
  5127. "building": 2115
  5128. }
  5129. },
  5130. {
  5131. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  5132. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  5133. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  5134. "profile": {
  5135. "factory": 6,
  5136. "building": 110
  5137. }
  5138. }
  5139. ],
  5140. "profile": {
  5141. "factory": 59,
  5142. "building": 41,
  5143. "dependencies": 4
  5144. },
  5145. "failed": false,
  5146. "errors": 0,
  5147. "warnings": 0,
  5148. "assets": [],
  5149. "reasons": [
  5150. {
  5151. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  5152. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  5153. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  5154. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  5155. "type": "harmony side effect evaluation",
  5156. "userRequest": "../States/stencilState",
  5157. "loc": "9:0-54"
  5158. },
  5159. {
  5160. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  5161. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  5162. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  5163. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  5164. "type": "harmony import specifier",
  5165. "userRequest": "../States/stencilState",
  5166. "loc": "106:33-45"
  5167. }
  5168. ],
  5169. "providedExports": [
  5170. "StencilState"
  5171. ],
  5172. "optimizationBailout": [],
  5173. "depth": 2,
  5174. "source": "import { Constants } from \"../Engines/constants\";\r\n/**\r\n * @hidden\r\n **/\r\nvar StencilState = /** @class */ (function () {\r\n function StencilState() {\r\n this._isStencilTestDirty = false;\r\n this._isStencilMaskDirty = false;\r\n this._isStencilFuncDirty = false;\r\n this._isStencilOpDirty = false;\r\n this.reset();\r\n }\r\n Object.defineProperty(StencilState.prototype, \"isDirty\", {\r\n get: function () {\r\n return this._isStencilTestDirty || this._isStencilMaskDirty || this._isStencilFuncDirty || this._isStencilOpDirty;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(StencilState.prototype, \"stencilFunc\", {\r\n get: function () {\r\n return this._stencilFunc;\r\n },\r\n set: function (value) {\r\n if (this._stencilFunc === value) {\r\n return;\r\n }\r\n this._stencilFunc = value;\r\n this._isStencilFuncDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(StencilState.prototype, \"stencilFuncRef\", {\r\n get: function () {\r\n return this._stencilFuncRef;\r\n },\r\n set: function (value) {\r\n if (this._stencilFuncRef === value) {\r\n return;\r\n }\r\n this._stencilFuncRef = value;\r\n this._isStencilFuncDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(StencilState.prototype, \"stencilFuncMask\", {\r\n get: function () {\r\n return this._stencilFuncMask;\r\n },\r\n set: function (value) {\r\n if (this._stencilFuncMask === value) {\r\n return;\r\n }\r\n this._stencilFuncMask = value;\r\n this._isStencilFuncDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(StencilState.prototype, \"stencilOpStencilFail\", {\r\n get: function () {\r\n return this._stencilOpStencilFail;\r\n },\r\n set: function (value) {\r\n if (this._stencilOpStencilFail === value) {\r\n return;\r\n }\r\n this._stencilOpStencilFail = value;\r\n this._isStencilOpDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(StencilState.prototype, \"stencilOpDepthFail\", {\r\n get: function () {\r\n return this._stencilOpDepthFail;\r\n },\r\n set: function (value) {\r\n if (this._stencilOpDepthFail === value) {\r\n return;\r\n }\r\n this._stencilOpDepthFail = value;\r\n this._isStencilOpDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(StencilState.prototype, \"stencilOpStencilDepthPass\", {\r\n get: function () {\r\n return this._stencilOpStencilDepthPass;\r\n },\r\n set: function (value) {\r\n if (this._stencilOpStencilDepthPass === value) {\r\n return;\r\n }\r\n this._stencilOpStencilDepthPass = value;\r\n this._isStencilOpDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(StencilState.prototype, \"stencilMask\", {\r\n get: function () {\r\n return this._stencilMask;\r\n },\r\n set: function (value) {\r\n if (this._stencilMask === value) {\r\n return;\r\n }\r\n this._stencilMask = value;\r\n this._isStencilMaskDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(StencilState.prototype, \"stencilTest\", {\r\n get: function () {\r\n return this._stencilTest;\r\n },\r\n set: function (value) {\r\n if (this._stencilTest === value) {\r\n return;\r\n }\r\n this._stencilTest = value;\r\n this._isStencilTestDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n StencilState.prototype.reset = function () {\r\n this._stencilTest = false;\r\n this._stencilMask = 0xFF;\r\n this._stencilFunc = StencilState.ALWAYS;\r\n this._stencilFuncRef = 1;\r\n this._stencilFuncMask = 0xFF;\r\n this._stencilOpStencilFail = StencilState.KEEP;\r\n this._stencilOpDepthFail = StencilState.KEEP;\r\n this._stencilOpStencilDepthPass = StencilState.REPLACE;\r\n this._isStencilTestDirty = true;\r\n this._isStencilMaskDirty = true;\r\n this._isStencilFuncDirty = true;\r\n this._isStencilOpDirty = true;\r\n };\r\n StencilState.prototype.apply = function (gl) {\r\n if (!this.isDirty) {\r\n return;\r\n }\r\n // Stencil test\r\n if (this._isStencilTestDirty) {\r\n if (this.stencilTest) {\r\n gl.enable(gl.STENCIL_TEST);\r\n }\r\n else {\r\n gl.disable(gl.STENCIL_TEST);\r\n }\r\n this._isStencilTestDirty = false;\r\n }\r\n // Stencil mask\r\n if (this._isStencilMaskDirty) {\r\n gl.stencilMask(this.stencilMask);\r\n this._isStencilMaskDirty = false;\r\n }\r\n // Stencil func\r\n if (this._isStencilFuncDirty) {\r\n gl.stencilFunc(this.stencilFunc, this.stencilFuncRef, this.stencilFuncMask);\r\n this._isStencilFuncDirty = false;\r\n }\r\n // Stencil op\r\n if (this._isStencilOpDirty) {\r\n gl.stencilOp(this.stencilOpStencilFail, this.stencilOpDepthFail, this.stencilOpStencilDepthPass);\r\n this._isStencilOpDirty = false;\r\n }\r\n };\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will always pass. i.e. Pixels will be drawn in the order they are drawn */\r\n StencilState.ALWAYS = Constants.ALWAYS;\r\n /** Passed to stencilOperation to specify that stencil value must be kept */\r\n StencilState.KEEP = Constants.KEEP;\r\n /** Passed to stencilOperation to specify that stencil value must be replaced */\r\n StencilState.REPLACE = Constants.REPLACE;\r\n return StencilState;\r\n}());\r\nexport { StencilState };\r\n//# sourceMappingURL=stencilState.js.map"
  5175. },
  5176. {
  5177. "id": "../../.temp/packageES6Dev/core/node_modules/tslib/tslib.es6.js",
  5178. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\node_modules\\tslib\\tslib.es6.js",
  5179. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/node_modules/tslib/tslib.es6.js",
  5180. "index": 2,
  5181. "index2": 0,
  5182. "size": 9436,
  5183. "cacheable": true,
  5184. "built": true,
  5185. "optional": false,
  5186. "prefetched": false,
  5187. "chunks": [
  5188. "thinEngineOnly"
  5189. ],
  5190. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  5191. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  5192. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  5193. "issuerPath": [
  5194. {
  5195. "id": "./thinEngineOnly.ts",
  5196. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  5197. "name": "./thinEngineOnly.ts",
  5198. "profile": {
  5199. "factory": 42,
  5200. "building": 2115
  5201. }
  5202. },
  5203. {
  5204. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  5205. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  5206. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  5207. "profile": {
  5208. "factory": 6,
  5209. "building": 110
  5210. }
  5211. }
  5212. ],
  5213. "profile": {
  5214. "factory": 59,
  5215. "building": 41,
  5216. "dependencies": 4
  5217. },
  5218. "failed": false,
  5219. "errors": 0,
  5220. "warnings": 0,
  5221. "assets": [],
  5222. "reasons": [
  5223. {
  5224. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js",
  5225. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineAndOperator.js",
  5226. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js",
  5227. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js",
  5228. "type": "harmony side effect evaluation",
  5229. "userRequest": "tslib",
  5230. "loc": "1:0-33"
  5231. },
  5232. {
  5233. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js",
  5234. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineAndOperator.js",
  5235. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js",
  5236. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js",
  5237. "type": "harmony import specifier",
  5238. "userRequest": "tslib",
  5239. "loc": "5:4-21"
  5240. },
  5241. {
  5242. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js",
  5243. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineArithmeticOperator.js",
  5244. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js",
  5245. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js",
  5246. "type": "harmony side effect evaluation",
  5247. "userRequest": "tslib",
  5248. "loc": "1:0-33"
  5249. },
  5250. {
  5251. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js",
  5252. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineArithmeticOperator.js",
  5253. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js",
  5254. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js",
  5255. "type": "harmony import specifier",
  5256. "userRequest": "tslib",
  5257. "loc": "5:4-21"
  5258. },
  5259. {
  5260. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  5261. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineIsDefinedOperator.js",
  5262. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  5263. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  5264. "type": "harmony side effect evaluation",
  5265. "userRequest": "tslib",
  5266. "loc": "1:0-33"
  5267. },
  5268. {
  5269. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  5270. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineIsDefinedOperator.js",
  5271. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  5272. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  5273. "type": "harmony import specifier",
  5274. "userRequest": "tslib",
  5275. "loc": "5:4-21"
  5276. },
  5277. {
  5278. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js",
  5279. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineOrOperator.js",
  5280. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js",
  5281. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js",
  5282. "type": "harmony side effect evaluation",
  5283. "userRequest": "tslib",
  5284. "loc": "1:0-33"
  5285. },
  5286. {
  5287. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js",
  5288. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineOrOperator.js",
  5289. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js",
  5290. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js",
  5291. "type": "harmony import specifier",
  5292. "userRequest": "tslib",
  5293. "loc": "5:4-21"
  5294. },
  5295. {
  5296. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeConditionNode.js",
  5297. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeConditionNode.js",
  5298. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeConditionNode.js",
  5299. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeConditionNode.js",
  5300. "type": "harmony side effect evaluation",
  5301. "userRequest": "tslib",
  5302. "loc": "1:0-33"
  5303. },
  5304. {
  5305. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeConditionNode.js",
  5306. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeConditionNode.js",
  5307. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeConditionNode.js",
  5308. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeConditionNode.js",
  5309. "type": "harmony import specifier",
  5310. "userRequest": "tslib",
  5311. "loc": "5:4-21"
  5312. },
  5313. {
  5314. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeTestNode.js",
  5315. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeTestNode.js",
  5316. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeTestNode.js",
  5317. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeTestNode.js",
  5318. "type": "harmony side effect evaluation",
  5319. "userRequest": "tslib",
  5320. "loc": "1:0-33"
  5321. },
  5322. {
  5323. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeTestNode.js",
  5324. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeTestNode.js",
  5325. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeTestNode.js",
  5326. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeTestNode.js",
  5327. "type": "harmony import specifier",
  5328. "userRequest": "tslib",
  5329. "loc": "5:4-21"
  5330. },
  5331. {
  5332. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  5333. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  5334. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  5335. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  5336. "type": "harmony side effect evaluation",
  5337. "userRequest": "tslib",
  5338. "loc": "1:0-33"
  5339. },
  5340. {
  5341. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  5342. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  5343. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  5344. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  5345. "type": "harmony import specifier",
  5346. "userRequest": "tslib",
  5347. "loc": "2747:30-46"
  5348. },
  5349. {
  5350. "moduleId": "../../.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  5351. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Meshes\\WebGL\\webGLDataBuffer.js",
  5352. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  5353. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  5354. "type": "harmony side effect evaluation",
  5355. "userRequest": "tslib",
  5356. "loc": "1:0-33"
  5357. },
  5358. {
  5359. "moduleId": "../../.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  5360. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Meshes\\WebGL\\webGLDataBuffer.js",
  5361. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  5362. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  5363. "type": "harmony import specifier",
  5364. "userRequest": "tslib",
  5365. "loc": "5:4-21"
  5366. },
  5367. {
  5368. "moduleId": "../../.temp/packageES6Dev/core/Misc/loadFileError.js",
  5369. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\loadFileError.js",
  5370. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/loadFileError.js",
  5371. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/loadFileError.js",
  5372. "type": "harmony side effect evaluation",
  5373. "userRequest": "tslib",
  5374. "loc": "1:0-33"
  5375. },
  5376. {
  5377. "moduleId": "../../.temp/packageES6Dev/core/Misc/loadFileError.js",
  5378. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\loadFileError.js",
  5379. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/loadFileError.js",
  5380. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/loadFileError.js",
  5381. "type": "harmony import specifier",
  5382. "userRequest": "tslib",
  5383. "loc": "7:4-21"
  5384. }
  5385. ],
  5386. "providedExports": [
  5387. "__extends",
  5388. "__assign",
  5389. "__rest",
  5390. "__decorate",
  5391. "__param",
  5392. "__metadata",
  5393. "__awaiter",
  5394. "__generator",
  5395. "__exportStar",
  5396. "__values",
  5397. "__read",
  5398. "__spread",
  5399. "__spreadArrays",
  5400. "__await",
  5401. "__asyncGenerator",
  5402. "__asyncDelegator",
  5403. "__asyncValues",
  5404. "__makeTemplateObject",
  5405. "__importStar",
  5406. "__importDefault"
  5407. ],
  5408. "optimizationBailout": [],
  5409. "depth": 2,
  5410. "source": "/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n"
  5411. },
  5412. {
  5413. "id": "./thinEngineOnly.ts",
  5414. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  5415. "name": "./thinEngineOnly.ts",
  5416. "index": 0,
  5417. "index2": 37,
  5418. "size": 146,
  5419. "cacheable": true,
  5420. "built": true,
  5421. "optional": false,
  5422. "prefetched": false,
  5423. "chunks": [
  5424. "thinEngineOnly"
  5425. ],
  5426. "issuer": null,
  5427. "issuerId": null,
  5428. "issuerName": null,
  5429. "issuerPath": null,
  5430. "profile": {
  5431. "factory": 42,
  5432. "building": 2115
  5433. },
  5434. "failed": false,
  5435. "errors": 0,
  5436. "warnings": 0,
  5437. "assets": [],
  5438. "reasons": [
  5439. {
  5440. "moduleId": null,
  5441. "moduleIdentifier": null,
  5442. "module": null,
  5443. "moduleName": null,
  5444. "type": "single entry",
  5445. "userRequest": "C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  5446. "loc": "thinEngineOnly"
  5447. }
  5448. ],
  5449. "providedExports": [],
  5450. "optimizationBailout": [],
  5451. "depth": 0,
  5452. "source": "import { ThinEngine } from \"@babylonjs/core/Engines/thinEngine\";\r\nvar canvas = document.getElementById(\"renderCanvas\");\r\nnew ThinEngine(canvas);\r\n"
  5453. }
  5454. ],
  5455. "filteredModules": 0,
  5456. "origins": [
  5457. {
  5458. "module": "",
  5459. "moduleIdentifier": "",
  5460. "moduleName": "",
  5461. "loc": "thinEngineOnly",
  5462. "request": "C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  5463. "reasons": []
  5464. }
  5465. ]
  5466. }
  5467. ],
  5468. "modules": [
  5469. {
  5470. "id": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js",
  5471. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineAndOperator.js",
  5472. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js",
  5473. "index": 18,
  5474. "index2": 14,
  5475. "size": 702,
  5476. "cacheable": true,
  5477. "built": true,
  5478. "optional": false,
  5479. "prefetched": false,
  5480. "chunks": [
  5481. "thinEngineOnly"
  5482. ],
  5483. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  5484. "issuerId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5485. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5486. "issuerPath": [
  5487. {
  5488. "id": "./thinEngineOnly.ts",
  5489. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  5490. "name": "./thinEngineOnly.ts",
  5491. "profile": {
  5492. "factory": 42,
  5493. "building": 2115
  5494. }
  5495. },
  5496. {
  5497. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  5498. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  5499. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  5500. "profile": {
  5501. "factory": 6,
  5502. "building": 110
  5503. }
  5504. },
  5505. {
  5506. "id": "../../.temp/packageES6Dev/core/Materials/effect.js",
  5507. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  5508. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  5509. "profile": {
  5510. "factory": 59,
  5511. "building": 41,
  5512. "dependencies": 4
  5513. }
  5514. },
  5515. {
  5516. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5517. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  5518. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5519. "profile": {
  5520. "factory": 25,
  5521. "building": 9,
  5522. "dependencies": 2
  5523. }
  5524. }
  5525. ],
  5526. "profile": {
  5527. "factory": 6,
  5528. "building": 12,
  5529. "dependencies": 4
  5530. },
  5531. "failed": false,
  5532. "errors": 0,
  5533. "warnings": 0,
  5534. "assets": [],
  5535. "reasons": [
  5536. {
  5537. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5538. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  5539. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5540. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5541. "type": "harmony side effect evaluation",
  5542. "userRequest": "./Expressions/Operators/shaderDefineAndOperator",
  5543. "loc": "7:0-90"
  5544. },
  5545. {
  5546. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5547. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  5548. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5549. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5550. "type": "harmony import specifier",
  5551. "userRequest": "./Expressions/Operators/shaderDefineAndOperator",
  5552. "loc": "66:38-61"
  5553. }
  5554. ],
  5555. "providedExports": [
  5556. "ShaderDefineAndOperator"
  5557. ],
  5558. "optimizationBailout": [],
  5559. "depth": 4,
  5560. "source": "import * as tslib_1 from \"tslib\";\r\nimport { ShaderDefineExpression } from '../shaderDefineExpression';\r\n/** @hidden */\r\nvar ShaderDefineAndOperator = /** @class */ (function (_super) {\r\n tslib_1.__extends(ShaderDefineAndOperator, _super);\r\n function ShaderDefineAndOperator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ShaderDefineAndOperator.prototype.isTrue = function (preprocessors) {\r\n return this.leftOperand.isTrue(preprocessors) && this.rightOperand.isTrue(preprocessors);\r\n };\r\n return ShaderDefineAndOperator;\r\n}(ShaderDefineExpression));\r\nexport { ShaderDefineAndOperator };\r\n//# sourceMappingURL=shaderDefineAndOperator.js.map"
  5561. },
  5562. {
  5563. "id": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js",
  5564. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineArithmeticOperator.js",
  5565. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js",
  5566. "index": 19,
  5567. "index2": 15,
  5568. "size": 1546,
  5569. "cacheable": true,
  5570. "built": true,
  5571. "optional": false,
  5572. "prefetched": false,
  5573. "chunks": [
  5574. "thinEngineOnly"
  5575. ],
  5576. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  5577. "issuerId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5578. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5579. "issuerPath": [
  5580. {
  5581. "id": "./thinEngineOnly.ts",
  5582. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  5583. "name": "./thinEngineOnly.ts",
  5584. "profile": {
  5585. "factory": 42,
  5586. "building": 2115
  5587. }
  5588. },
  5589. {
  5590. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  5591. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  5592. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  5593. "profile": {
  5594. "factory": 6,
  5595. "building": 110
  5596. }
  5597. },
  5598. {
  5599. "id": "../../.temp/packageES6Dev/core/Materials/effect.js",
  5600. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  5601. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  5602. "profile": {
  5603. "factory": 59,
  5604. "building": 41,
  5605. "dependencies": 4
  5606. }
  5607. },
  5608. {
  5609. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5610. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  5611. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5612. "profile": {
  5613. "factory": 25,
  5614. "building": 9,
  5615. "dependencies": 2
  5616. }
  5617. }
  5618. ],
  5619. "profile": {
  5620. "factory": 6,
  5621. "building": 12,
  5622. "dependencies": 4
  5623. },
  5624. "failed": false,
  5625. "errors": 0,
  5626. "warnings": 0,
  5627. "assets": [],
  5628. "reasons": [
  5629. {
  5630. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5631. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  5632. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5633. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5634. "type": "harmony side effect evaluation",
  5635. "userRequest": "./Expressions/Operators/shaderDefineArithmeticOperator",
  5636. "loc": "8:0-104"
  5637. },
  5638. {
  5639. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5640. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  5641. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5642. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5643. "type": "harmony import specifier",
  5644. "userRequest": "./Expressions/Operators/shaderDefineArithmeticOperator",
  5645. "loc": "59:19-49"
  5646. }
  5647. ],
  5648. "providedExports": [
  5649. "ShaderDefineArithmeticOperator"
  5650. ],
  5651. "optimizationBailout": [],
  5652. "depth": 4,
  5653. "source": "import * as tslib_1 from \"tslib\";\r\nimport { ShaderDefineExpression } from '../shaderDefineExpression';\r\n/** @hidden */\r\nvar ShaderDefineArithmeticOperator = /** @class */ (function (_super) {\r\n tslib_1.__extends(ShaderDefineArithmeticOperator, _super);\r\n function ShaderDefineArithmeticOperator(define, operand, testValue) {\r\n var _this = _super.call(this) || this;\r\n _this.define = define;\r\n _this.operand = operand;\r\n _this.testValue = testValue;\r\n return _this;\r\n }\r\n ShaderDefineArithmeticOperator.prototype.isTrue = function (preprocessors) {\r\n var value = preprocessors[this.define];\r\n if (value === undefined) {\r\n return false;\r\n }\r\n var condition = false;\r\n var left = parseInt(value);\r\n var right = parseInt(this.testValue);\r\n switch (this.operand) {\r\n case \">\":\r\n condition = left > right;\r\n break;\r\n case \"<\":\r\n condition = left < right;\r\n break;\r\n case \"<=\":\r\n condition = left <= right;\r\n break;\r\n case \">=\":\r\n condition = left >= right;\r\n break;\r\n case \"==\":\r\n condition = left === right;\r\n break;\r\n }\r\n return condition;\r\n };\r\n return ShaderDefineArithmeticOperator;\r\n}(ShaderDefineExpression));\r\nexport { ShaderDefineArithmeticOperator };\r\n//# sourceMappingURL=shaderDefineArithmeticOperator.js.map"
  5654. },
  5655. {
  5656. "id": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  5657. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineIsDefinedOperator.js",
  5658. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  5659. "index": 15,
  5660. "index2": 12,
  5661. "size": 924,
  5662. "cacheable": true,
  5663. "built": true,
  5664. "optional": false,
  5665. "prefetched": false,
  5666. "chunks": [
  5667. "thinEngineOnly"
  5668. ],
  5669. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  5670. "issuerId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5671. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5672. "issuerPath": [
  5673. {
  5674. "id": "./thinEngineOnly.ts",
  5675. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  5676. "name": "./thinEngineOnly.ts",
  5677. "profile": {
  5678. "factory": 42,
  5679. "building": 2115
  5680. }
  5681. },
  5682. {
  5683. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  5684. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  5685. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  5686. "profile": {
  5687. "factory": 6,
  5688. "building": 110
  5689. }
  5690. },
  5691. {
  5692. "id": "../../.temp/packageES6Dev/core/Materials/effect.js",
  5693. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  5694. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  5695. "profile": {
  5696. "factory": 59,
  5697. "building": 41,
  5698. "dependencies": 4
  5699. }
  5700. },
  5701. {
  5702. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5703. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  5704. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5705. "profile": {
  5706. "factory": 25,
  5707. "building": 9,
  5708. "dependencies": 2
  5709. }
  5710. }
  5711. ],
  5712. "profile": {
  5713. "factory": 6,
  5714. "building": 12,
  5715. "dependencies": 4
  5716. },
  5717. "failed": false,
  5718. "errors": 0,
  5719. "warnings": 0,
  5720. "assets": [],
  5721. "reasons": [
  5722. {
  5723. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5724. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  5725. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5726. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5727. "type": "harmony side effect evaluation",
  5728. "userRequest": "./Expressions/Operators/shaderDefineIsDefinedOperator",
  5729. "loc": "5:0-102"
  5730. },
  5731. {
  5732. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5733. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  5734. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5735. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5736. "type": "harmony import specifier",
  5737. "userRequest": "./Expressions/Operators/shaderDefineIsDefinedOperator",
  5738. "loc": "42:23-52"
  5739. },
  5740. {
  5741. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5742. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  5743. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5744. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5745. "type": "harmony import specifier",
  5746. "userRequest": "./Expressions/Operators/shaderDefineIsDefinedOperator",
  5747. "loc": "55:23-52"
  5748. },
  5749. {
  5750. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5751. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  5752. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5753. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5754. "type": "harmony import specifier",
  5755. "userRequest": "./Expressions/Operators/shaderDefineIsDefinedOperator",
  5756. "loc": "91:38-67"
  5757. },
  5758. {
  5759. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5760. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  5761. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5762. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5763. "type": "harmony import specifier",
  5764. "userRequest": "./Expressions/Operators/shaderDefineIsDefinedOperator",
  5765. "loc": "94:38-67"
  5766. }
  5767. ],
  5768. "providedExports": [
  5769. "ShaderDefineIsDefinedOperator"
  5770. ],
  5771. "optimizationBailout": [],
  5772. "depth": 4,
  5773. "source": "import * as tslib_1 from \"tslib\";\r\nimport { ShaderDefineExpression } from \"../shaderDefineExpression\";\r\n/** @hidden */\r\nvar ShaderDefineIsDefinedOperator = /** @class */ (function (_super) {\r\n tslib_1.__extends(ShaderDefineIsDefinedOperator, _super);\r\n function ShaderDefineIsDefinedOperator(define, not) {\r\n if (not === void 0) { not = false; }\r\n var _this = _super.call(this) || this;\r\n _this.define = define;\r\n _this.not = not;\r\n return _this;\r\n }\r\n ShaderDefineIsDefinedOperator.prototype.isTrue = function (preprocessors) {\r\n var condition = preprocessors[this.define] !== undefined;\r\n if (this.not) {\r\n condition = !condition;\r\n }\r\n return condition;\r\n };\r\n return ShaderDefineIsDefinedOperator;\r\n}(ShaderDefineExpression));\r\nexport { ShaderDefineIsDefinedOperator };\r\n//# sourceMappingURL=shaderDefineIsDefinedOperator.js.map"
  5774. },
  5775. {
  5776. "id": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js",
  5777. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineOrOperator.js",
  5778. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js",
  5779. "index": 17,
  5780. "index2": 13,
  5781. "size": 695,
  5782. "cacheable": true,
  5783. "built": true,
  5784. "optional": false,
  5785. "prefetched": false,
  5786. "chunks": [
  5787. "thinEngineOnly"
  5788. ],
  5789. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  5790. "issuerId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5791. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5792. "issuerPath": [
  5793. {
  5794. "id": "./thinEngineOnly.ts",
  5795. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  5796. "name": "./thinEngineOnly.ts",
  5797. "profile": {
  5798. "factory": 42,
  5799. "building": 2115
  5800. }
  5801. },
  5802. {
  5803. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  5804. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  5805. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  5806. "profile": {
  5807. "factory": 6,
  5808. "building": 110
  5809. }
  5810. },
  5811. {
  5812. "id": "../../.temp/packageES6Dev/core/Materials/effect.js",
  5813. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  5814. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  5815. "profile": {
  5816. "factory": 59,
  5817. "building": 41,
  5818. "dependencies": 4
  5819. }
  5820. },
  5821. {
  5822. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5823. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  5824. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5825. "profile": {
  5826. "factory": 25,
  5827. "building": 9,
  5828. "dependencies": 2
  5829. }
  5830. }
  5831. ],
  5832. "profile": {
  5833. "factory": 6,
  5834. "building": 12,
  5835. "dependencies": 4
  5836. },
  5837. "failed": false,
  5838. "errors": 0,
  5839. "warnings": 0,
  5840. "assets": [],
  5841. "reasons": [
  5842. {
  5843. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5844. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  5845. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5846. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5847. "type": "harmony side effect evaluation",
  5848. "userRequest": "./Expressions/Operators/shaderDefineOrOperator",
  5849. "loc": "6:0-88"
  5850. },
  5851. {
  5852. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5853. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  5854. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5855. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5856. "type": "harmony import specifier",
  5857. "userRequest": "./Expressions/Operators/shaderDefineOrOperator",
  5858. "loc": "78:33-55"
  5859. }
  5860. ],
  5861. "providedExports": [
  5862. "ShaderDefineOrOperator"
  5863. ],
  5864. "optimizationBailout": [],
  5865. "depth": 4,
  5866. "source": "import * as tslib_1 from \"tslib\";\r\nimport { ShaderDefineExpression } from '../shaderDefineExpression';\r\n/** @hidden */\r\nvar ShaderDefineOrOperator = /** @class */ (function (_super) {\r\n tslib_1.__extends(ShaderDefineOrOperator, _super);\r\n function ShaderDefineOrOperator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ShaderDefineOrOperator.prototype.isTrue = function (preprocessors) {\r\n return this.leftOperand.isTrue(preprocessors) || this.rightOperand.isTrue(preprocessors);\r\n };\r\n return ShaderDefineOrOperator;\r\n}(ShaderDefineExpression));\r\nexport { ShaderDefineOrOperator };\r\n//# sourceMappingURL=shaderDefineOrOperator.js.map"
  5867. },
  5868. {
  5869. "id": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/shaderDefineExpression.js",
  5870. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\shaderDefineExpression.js",
  5871. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/shaderDefineExpression.js",
  5872. "index": 16,
  5873. "index2": 11,
  5874. "size": 356,
  5875. "cacheable": true,
  5876. "built": true,
  5877. "optional": false,
  5878. "prefetched": false,
  5879. "chunks": [
  5880. "thinEngineOnly"
  5881. ],
  5882. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineIsDefinedOperator.js",
  5883. "issuerId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  5884. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  5885. "issuerPath": [
  5886. {
  5887. "id": "./thinEngineOnly.ts",
  5888. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  5889. "name": "./thinEngineOnly.ts",
  5890. "profile": {
  5891. "factory": 42,
  5892. "building": 2115
  5893. }
  5894. },
  5895. {
  5896. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  5897. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  5898. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  5899. "profile": {
  5900. "factory": 6,
  5901. "building": 110
  5902. }
  5903. },
  5904. {
  5905. "id": "../../.temp/packageES6Dev/core/Materials/effect.js",
  5906. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  5907. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  5908. "profile": {
  5909. "factory": 59,
  5910. "building": 41,
  5911. "dependencies": 4
  5912. }
  5913. },
  5914. {
  5915. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5916. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  5917. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  5918. "profile": {
  5919. "factory": 25,
  5920. "building": 9,
  5921. "dependencies": 2
  5922. }
  5923. },
  5924. {
  5925. "id": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  5926. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineIsDefinedOperator.js",
  5927. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  5928. "profile": {
  5929. "factory": 6,
  5930. "building": 12,
  5931. "dependencies": 4
  5932. }
  5933. }
  5934. ],
  5935. "profile": {
  5936. "factory": 5,
  5937. "building": 1
  5938. },
  5939. "failed": false,
  5940. "errors": 0,
  5941. "warnings": 0,
  5942. "assets": [],
  5943. "reasons": [
  5944. {
  5945. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js",
  5946. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineAndOperator.js",
  5947. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js",
  5948. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js",
  5949. "type": "harmony side effect evaluation",
  5950. "userRequest": "../shaderDefineExpression",
  5951. "loc": "2:0-67"
  5952. },
  5953. {
  5954. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js",
  5955. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineAndOperator.js",
  5956. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js",
  5957. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js",
  5958. "type": "harmony import specifier",
  5959. "userRequest": "../shaderDefineExpression",
  5960. "loc": "13:2-24"
  5961. },
  5962. {
  5963. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js",
  5964. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineArithmeticOperator.js",
  5965. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js",
  5966. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js",
  5967. "type": "harmony side effect evaluation",
  5968. "userRequest": "../shaderDefineExpression",
  5969. "loc": "2:0-67"
  5970. },
  5971. {
  5972. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js",
  5973. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineArithmeticOperator.js",
  5974. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js",
  5975. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js",
  5976. "type": "harmony import specifier",
  5977. "userRequest": "../shaderDefineExpression",
  5978. "loc": "41:2-24"
  5979. },
  5980. {
  5981. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  5982. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineIsDefinedOperator.js",
  5983. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  5984. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  5985. "type": "harmony side effect evaluation",
  5986. "userRequest": "../shaderDefineExpression",
  5987. "loc": "2:0-67"
  5988. },
  5989. {
  5990. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  5991. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineIsDefinedOperator.js",
  5992. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  5993. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  5994. "type": "harmony import specifier",
  5995. "userRequest": "../shaderDefineExpression",
  5996. "loc": "21:2-24"
  5997. },
  5998. {
  5999. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js",
  6000. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineOrOperator.js",
  6001. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js",
  6002. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js",
  6003. "type": "harmony side effect evaluation",
  6004. "userRequest": "../shaderDefineExpression",
  6005. "loc": "2:0-67"
  6006. },
  6007. {
  6008. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js",
  6009. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineOrOperator.js",
  6010. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js",
  6011. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js",
  6012. "type": "harmony import specifier",
  6013. "userRequest": "../shaderDefineExpression",
  6014. "loc": "13:2-24"
  6015. }
  6016. ],
  6017. "providedExports": [
  6018. "ShaderDefineExpression"
  6019. ],
  6020. "optimizationBailout": [],
  6021. "depth": 5,
  6022. "source": "/** @hidden */\r\nvar ShaderDefineExpression = /** @class */ (function () {\r\n function ShaderDefineExpression() {\r\n }\r\n ShaderDefineExpression.prototype.isTrue = function (preprocessors) {\r\n return true;\r\n };\r\n return ShaderDefineExpression;\r\n}());\r\nexport { ShaderDefineExpression };\r\n//# sourceMappingURL=shaderDefineExpression.js.map"
  6023. },
  6024. {
  6025. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeConditionNode.js",
  6026. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeConditionNode.js",
  6027. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeConditionNode.js",
  6028. "index": 13,
  6029. "index2": 9,
  6030. "size": 860,
  6031. "cacheable": true,
  6032. "built": true,
  6033. "optional": false,
  6034. "prefetched": false,
  6035. "chunks": [
  6036. "thinEngineOnly"
  6037. ],
  6038. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  6039. "issuerId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6040. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6041. "issuerPath": [
  6042. {
  6043. "id": "./thinEngineOnly.ts",
  6044. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  6045. "name": "./thinEngineOnly.ts",
  6046. "profile": {
  6047. "factory": 42,
  6048. "building": 2115
  6049. }
  6050. },
  6051. {
  6052. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6053. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6054. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6055. "profile": {
  6056. "factory": 6,
  6057. "building": 110
  6058. }
  6059. },
  6060. {
  6061. "id": "../../.temp/packageES6Dev/core/Materials/effect.js",
  6062. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  6063. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  6064. "profile": {
  6065. "factory": 59,
  6066. "building": 41,
  6067. "dependencies": 4
  6068. }
  6069. },
  6070. {
  6071. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6072. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  6073. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6074. "profile": {
  6075. "factory": 25,
  6076. "building": 9,
  6077. "dependencies": 2
  6078. }
  6079. }
  6080. ],
  6081. "profile": {
  6082. "factory": 6,
  6083. "building": 12,
  6084. "dependencies": 4
  6085. },
  6086. "failed": false,
  6087. "errors": 0,
  6088. "warnings": 0,
  6089. "assets": [],
  6090. "reasons": [
  6091. {
  6092. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6093. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  6094. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6095. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6096. "type": "harmony side effect evaluation",
  6097. "userRequest": "./shaderCodeConditionNode",
  6098. "loc": "3:0-68"
  6099. },
  6100. {
  6101. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6102. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  6103. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6104. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6105. "type": "harmony import specifier",
  6106. "userRequest": "./shaderCodeConditionNode",
  6107. "loc": "129:46-69"
  6108. },
  6109. {
  6110. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6111. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  6112. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6113. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6114. "type": "harmony import specifier",
  6115. "userRequest": "./shaderCodeConditionNode",
  6116. "loc": "142:46-69"
  6117. },
  6118. {
  6119. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6120. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  6121. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6122. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6123. "type": "harmony import specifier",
  6124. "userRequest": "./shaderCodeConditionNode",
  6125. "loc": "150:46-69"
  6126. }
  6127. ],
  6128. "providedExports": [
  6129. "ShaderCodeConditionNode"
  6130. ],
  6131. "optimizationBailout": [],
  6132. "depth": 4,
  6133. "source": "import * as tslib_1 from \"tslib\";\r\nimport { ShaderCodeNode } from './shaderCodeNode';\r\n/** @hidden */\r\nvar ShaderCodeConditionNode = /** @class */ (function (_super) {\r\n tslib_1.__extends(ShaderCodeConditionNode, _super);\r\n function ShaderCodeConditionNode() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ShaderCodeConditionNode.prototype.process = function (preprocessors, options) {\r\n for (var index = 0; index < this.children.length; index++) {\r\n var node = this.children[index];\r\n if (node.isValid(preprocessors)) {\r\n return node.process(preprocessors, options);\r\n }\r\n }\r\n return \"\";\r\n };\r\n return ShaderCodeConditionNode;\r\n}(ShaderCodeNode));\r\nexport { ShaderCodeConditionNode };\r\n//# sourceMappingURL=shaderCodeConditionNode.js.map"
  6134. },
  6135. {
  6136. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeCursor.js",
  6137. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeCursor.js",
  6138. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeCursor.js",
  6139. "index": 12,
  6140. "index2": 8,
  6141. "size": 1628,
  6142. "cacheable": true,
  6143. "built": true,
  6144. "optional": false,
  6145. "prefetched": false,
  6146. "chunks": [
  6147. "thinEngineOnly"
  6148. ],
  6149. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  6150. "issuerId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6151. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6152. "issuerPath": [
  6153. {
  6154. "id": "./thinEngineOnly.ts",
  6155. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  6156. "name": "./thinEngineOnly.ts",
  6157. "profile": {
  6158. "factory": 42,
  6159. "building": 2115
  6160. }
  6161. },
  6162. {
  6163. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6164. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6165. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6166. "profile": {
  6167. "factory": 6,
  6168. "building": 110
  6169. }
  6170. },
  6171. {
  6172. "id": "../../.temp/packageES6Dev/core/Materials/effect.js",
  6173. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  6174. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  6175. "profile": {
  6176. "factory": 59,
  6177. "building": 41,
  6178. "dependencies": 4
  6179. }
  6180. },
  6181. {
  6182. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6183. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  6184. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6185. "profile": {
  6186. "factory": 25,
  6187. "building": 9,
  6188. "dependencies": 2
  6189. }
  6190. }
  6191. ],
  6192. "profile": {
  6193. "factory": 6,
  6194. "building": 12,
  6195. "dependencies": 4
  6196. },
  6197. "failed": false,
  6198. "errors": 0,
  6199. "warnings": 0,
  6200. "assets": [],
  6201. "reasons": [
  6202. {
  6203. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6204. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  6205. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6206. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6207. "type": "harmony side effect evaluation",
  6208. "userRequest": "./shaderCodeCursor",
  6209. "loc": "2:0-54"
  6210. },
  6211. {
  6212. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6213. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  6214. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6215. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6216. "type": "harmony import specifier",
  6217. "userRequest": "./shaderCodeCursor",
  6218. "loc": "177:25-41"
  6219. }
  6220. ],
  6221. "providedExports": [
  6222. "ShaderCodeCursor"
  6223. ],
  6224. "optimizationBailout": [],
  6225. "depth": 4,
  6226. "source": "/** @hidden */\r\nvar ShaderCodeCursor = /** @class */ (function () {\r\n function ShaderCodeCursor() {\r\n }\r\n Object.defineProperty(ShaderCodeCursor.prototype, \"currentLine\", {\r\n get: function () {\r\n return this._lines[this.lineIndex];\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ShaderCodeCursor.prototype, \"canRead\", {\r\n get: function () {\r\n return this.lineIndex < this._lines.length - 1;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ShaderCodeCursor.prototype, \"lines\", {\r\n set: function (value) {\r\n this._lines = [];\r\n for (var _i = 0, value_1 = value; _i < value_1.length; _i++) {\r\n var line = value_1[_i];\r\n // Prevent removing line break in macros.\r\n if (line[0] === \"#\") {\r\n this._lines.push(line);\r\n continue;\r\n }\r\n var split = line.split(\";\");\r\n for (var index = 0; index < split.length; index++) {\r\n var subLine = split[index];\r\n subLine = subLine.trim();\r\n if (!subLine) {\r\n continue;\r\n }\r\n this._lines.push(subLine + (index !== split.length - 1 ? \";\" : \"\"));\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return ShaderCodeCursor;\r\n}());\r\nexport { ShaderCodeCursor };\r\n//# sourceMappingURL=shaderCodeCursor.js.map"
  6227. },
  6228. {
  6229. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  6230. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeNode.js",
  6231. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  6232. "index": 10,
  6233. "index2": 7,
  6234. "size": 2903,
  6235. "cacheable": true,
  6236. "built": true,
  6237. "optional": false,
  6238. "prefetched": false,
  6239. "chunks": [
  6240. "thinEngineOnly"
  6241. ],
  6242. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  6243. "issuerId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6244. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6245. "issuerPath": [
  6246. {
  6247. "id": "./thinEngineOnly.ts",
  6248. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  6249. "name": "./thinEngineOnly.ts",
  6250. "profile": {
  6251. "factory": 42,
  6252. "building": 2115
  6253. }
  6254. },
  6255. {
  6256. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6257. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6258. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6259. "profile": {
  6260. "factory": 6,
  6261. "building": 110
  6262. }
  6263. },
  6264. {
  6265. "id": "../../.temp/packageES6Dev/core/Materials/effect.js",
  6266. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  6267. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  6268. "profile": {
  6269. "factory": 59,
  6270. "building": 41,
  6271. "dependencies": 4
  6272. }
  6273. },
  6274. {
  6275. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6276. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  6277. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6278. "profile": {
  6279. "factory": 25,
  6280. "building": 9,
  6281. "dependencies": 2
  6282. }
  6283. }
  6284. ],
  6285. "profile": {
  6286. "factory": 6,
  6287. "building": 12,
  6288. "dependencies": 4
  6289. },
  6290. "failed": false,
  6291. "errors": 0,
  6292. "warnings": 0,
  6293. "assets": [],
  6294. "reasons": [
  6295. {
  6296. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeConditionNode.js",
  6297. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeConditionNode.js",
  6298. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeConditionNode.js",
  6299. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeConditionNode.js",
  6300. "type": "harmony side effect evaluation",
  6301. "userRequest": "./shaderCodeNode",
  6302. "loc": "2:0-50"
  6303. },
  6304. {
  6305. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeConditionNode.js",
  6306. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeConditionNode.js",
  6307. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeConditionNode.js",
  6308. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeConditionNode.js",
  6309. "type": "harmony import specifier",
  6310. "userRequest": "./shaderCodeNode",
  6311. "loc": "19:2-16"
  6312. },
  6313. {
  6314. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeTestNode.js",
  6315. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeTestNode.js",
  6316. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeTestNode.js",
  6317. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeTestNode.js",
  6318. "type": "harmony side effect evaluation",
  6319. "userRequest": "./shaderCodeNode",
  6320. "loc": "2:0-50"
  6321. },
  6322. {
  6323. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeTestNode.js",
  6324. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeTestNode.js",
  6325. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeTestNode.js",
  6326. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeTestNode.js",
  6327. "type": "harmony import specifier",
  6328. "userRequest": "./shaderCodeNode",
  6329. "loc": "13:2-16"
  6330. },
  6331. {
  6332. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6333. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  6334. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6335. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6336. "type": "harmony side effect evaluation",
  6337. "userRequest": "./shaderCodeNode",
  6338. "loc": "1:0-50"
  6339. },
  6340. {
  6341. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6342. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  6343. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6344. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6345. "type": "harmony import specifier",
  6346. "userRequest": "./shaderCodeNode",
  6347. "loc": "107:35-49"
  6348. },
  6349. {
  6350. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6351. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  6352. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6353. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6354. "type": "harmony import specifier",
  6355. "userRequest": "./shaderCodeNode",
  6356. "loc": "160:34-48"
  6357. },
  6358. {
  6359. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6360. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  6361. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6362. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6363. "type": "harmony import specifier",
  6364. "userRequest": "./shaderCodeNode",
  6365. "loc": "176:27-41"
  6366. }
  6367. ],
  6368. "providedExports": [
  6369. "ShaderCodeNode"
  6370. ],
  6371. "optimizationBailout": [],
  6372. "depth": 4,
  6373. "source": "import { StringTools } from '../../Misc/stringTools';\r\n/** @hidden */\r\nvar ShaderCodeNode = /** @class */ (function () {\r\n function ShaderCodeNode() {\r\n this.children = [];\r\n }\r\n ShaderCodeNode.prototype.isValid = function (preprocessors) {\r\n return true;\r\n };\r\n ShaderCodeNode.prototype.process = function (preprocessors, options) {\r\n var result = \"\";\r\n if (this.line) {\r\n var value = this.line;\r\n var processor = options.processor;\r\n if (processor) {\r\n // This must be done before other replacements to avoid mistakenly changing something that was already changed.\r\n if (processor.lineProcessor) {\r\n value = processor.lineProcessor(value, options.isFragment);\r\n }\r\n if (processor.attributeProcessor && StringTools.StartsWith(this.line, \"attribute\")) {\r\n value = processor.attributeProcessor(this.line);\r\n }\r\n else if (processor.varyingProcessor && StringTools.StartsWith(this.line, \"varying\")) {\r\n value = processor.varyingProcessor(this.line, options.isFragment);\r\n }\r\n else if ((processor.uniformProcessor || processor.uniformBufferProcessor) && StringTools.StartsWith(this.line, \"uniform\")) {\r\n var regex = /uniform (.+) (.+)/;\r\n if (regex.test(this.line)) { // uniform\r\n if (processor.uniformProcessor) {\r\n value = processor.uniformProcessor(this.line, options.isFragment);\r\n }\r\n }\r\n else { // Uniform buffer\r\n if (processor.uniformBufferProcessor) {\r\n value = processor.uniformBufferProcessor(this.line, options.isFragment);\r\n options.lookForClosingBracketForUniformBuffer = true;\r\n }\r\n }\r\n }\r\n if (processor.endOfUniformBufferProcessor) {\r\n if (options.lookForClosingBracketForUniformBuffer && this.line.indexOf(\"}\") !== -1) {\r\n options.lookForClosingBracketForUniformBuffer = false;\r\n value = processor.endOfUniformBufferProcessor(this.line, options.isFragment);\r\n }\r\n }\r\n }\r\n result += value + \"\\r\\n\";\r\n }\r\n this.children.forEach(function (child) {\r\n result += child.process(preprocessors, options);\r\n });\r\n if (this.additionalDefineKey) {\r\n preprocessors[this.additionalDefineKey] = this.additionalDefineValue || \"true\";\r\n }\r\n return result;\r\n };\r\n return ShaderCodeNode;\r\n}());\r\nexport { ShaderCodeNode };\r\n//# sourceMappingURL=shaderCodeNode.js.map"
  6374. },
  6375. {
  6376. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeTestNode.js",
  6377. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeTestNode.js",
  6378. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeTestNode.js",
  6379. "index": 14,
  6380. "index2": 10,
  6381. "size": 603,
  6382. "cacheable": true,
  6383. "built": true,
  6384. "optional": false,
  6385. "prefetched": false,
  6386. "chunks": [
  6387. "thinEngineOnly"
  6388. ],
  6389. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  6390. "issuerId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6391. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6392. "issuerPath": [
  6393. {
  6394. "id": "./thinEngineOnly.ts",
  6395. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  6396. "name": "./thinEngineOnly.ts",
  6397. "profile": {
  6398. "factory": 42,
  6399. "building": 2115
  6400. }
  6401. },
  6402. {
  6403. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6404. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6405. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6406. "profile": {
  6407. "factory": 6,
  6408. "building": 110
  6409. }
  6410. },
  6411. {
  6412. "id": "../../.temp/packageES6Dev/core/Materials/effect.js",
  6413. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  6414. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  6415. "profile": {
  6416. "factory": 59,
  6417. "building": 41,
  6418. "dependencies": 4
  6419. }
  6420. },
  6421. {
  6422. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6423. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  6424. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6425. "profile": {
  6426. "factory": 25,
  6427. "building": 9,
  6428. "dependencies": 2
  6429. }
  6430. }
  6431. ],
  6432. "profile": {
  6433. "factory": 6,
  6434. "building": 12,
  6435. "dependencies": 4
  6436. },
  6437. "failed": false,
  6438. "errors": 0,
  6439. "warnings": 0,
  6440. "assets": [],
  6441. "reasons": [
  6442. {
  6443. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6444. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  6445. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6446. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6447. "type": "harmony side effect evaluation",
  6448. "userRequest": "./shaderCodeTestNode",
  6449. "loc": "4:0-58"
  6450. },
  6451. {
  6452. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6453. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  6454. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6455. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6456. "type": "harmony import specifier",
  6457. "userRequest": "./shaderCodeTestNode",
  6458. "loc": "87:23-41"
  6459. }
  6460. ],
  6461. "providedExports": [
  6462. "ShaderCodeTestNode"
  6463. ],
  6464. "optimizationBailout": [],
  6465. "depth": 4,
  6466. "source": "import * as tslib_1 from \"tslib\";\r\nimport { ShaderCodeNode } from './shaderCodeNode';\r\n/** @hidden */\r\nvar ShaderCodeTestNode = /** @class */ (function (_super) {\r\n tslib_1.__extends(ShaderCodeTestNode, _super);\r\n function ShaderCodeTestNode() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ShaderCodeTestNode.prototype.isValid = function (preprocessors) {\r\n return this.testExpression.isTrue(preprocessors);\r\n };\r\n return ShaderCodeTestNode;\r\n}(ShaderCodeNode));\r\nexport { ShaderCodeTestNode };\r\n//# sourceMappingURL=shaderCodeTestNode.js.map"
  6467. },
  6468. {
  6469. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6470. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  6471. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  6472. "index": 9,
  6473. "index2": 21,
  6474. "size": 14076,
  6475. "cacheable": true,
  6476. "built": true,
  6477. "optional": false,
  6478. "prefetched": false,
  6479. "chunks": [
  6480. "thinEngineOnly"
  6481. ],
  6482. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  6483. "issuerId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  6484. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  6485. "issuerPath": [
  6486. {
  6487. "id": "./thinEngineOnly.ts",
  6488. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  6489. "name": "./thinEngineOnly.ts",
  6490. "profile": {
  6491. "factory": 42,
  6492. "building": 2115
  6493. }
  6494. },
  6495. {
  6496. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6497. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6498. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6499. "profile": {
  6500. "factory": 6,
  6501. "building": 110
  6502. }
  6503. },
  6504. {
  6505. "id": "../../.temp/packageES6Dev/core/Materials/effect.js",
  6506. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  6507. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  6508. "profile": {
  6509. "factory": 59,
  6510. "building": 41,
  6511. "dependencies": 4
  6512. }
  6513. }
  6514. ],
  6515. "profile": {
  6516. "factory": 25,
  6517. "building": 9,
  6518. "dependencies": 2
  6519. },
  6520. "failed": false,
  6521. "errors": 0,
  6522. "warnings": 0,
  6523. "assets": [],
  6524. "reasons": [
  6525. {
  6526. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  6527. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  6528. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  6529. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  6530. "type": "harmony side effect evaluation",
  6531. "userRequest": "../Engines/Processors/shaderProcessor",
  6532. "loc": "5:0-72"
  6533. },
  6534. {
  6535. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  6536. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  6537. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  6538. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  6539. "type": "harmony import specifier",
  6540. "userRequest": "../Engines/Processors/shaderProcessor",
  6541. "loc": "281:16-31"
  6542. },
  6543. {
  6544. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  6545. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  6546. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  6547. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  6548. "type": "harmony import specifier",
  6549. "userRequest": "../Engines/Processors/shaderProcessor",
  6550. "loc": "283:20-35"
  6551. }
  6552. ],
  6553. "providedExports": [
  6554. "ShaderProcessor"
  6555. ],
  6556. "optimizationBailout": [],
  6557. "depth": 3,
  6558. "source": "import { ShaderCodeNode } from './shaderCodeNode';\r\nimport { ShaderCodeCursor } from './shaderCodeCursor';\r\nimport { ShaderCodeConditionNode } from './shaderCodeConditionNode';\r\nimport { ShaderCodeTestNode } from './shaderCodeTestNode';\r\nimport { ShaderDefineIsDefinedOperator } from './Expressions/Operators/shaderDefineIsDefinedOperator';\r\nimport { ShaderDefineOrOperator } from './Expressions/Operators/shaderDefineOrOperator';\r\nimport { ShaderDefineAndOperator } from './Expressions/Operators/shaderDefineAndOperator';\r\nimport { ShaderDefineArithmeticOperator } from './Expressions/Operators/shaderDefineArithmeticOperator';\r\nimport { FileTools } from '../../Misc/fileTools';\r\n/** @hidden */\r\nvar ShaderProcessor = /** @class */ (function () {\r\n function ShaderProcessor() {\r\n }\r\n ShaderProcessor.Process = function (sourceCode, options, callback) {\r\n var _this = this;\r\n this._ProcessIncludes(sourceCode, options, function (codeWithIncludes) {\r\n var migratedCode = _this._ProcessShaderConversion(codeWithIncludes, options);\r\n callback(migratedCode);\r\n });\r\n };\r\n ShaderProcessor._ProcessPrecision = function (source, options) {\r\n var shouldUseHighPrecisionShader = options.shouldUseHighPrecisionShader;\r\n if (source.indexOf(\"precision highp float\") === -1) {\r\n if (!shouldUseHighPrecisionShader) {\r\n source = \"precision mediump float;\\n\" + source;\r\n }\r\n else {\r\n source = \"precision highp float;\\n\" + source;\r\n }\r\n }\r\n else {\r\n if (!shouldUseHighPrecisionShader) { // Moving highp to mediump\r\n source = source.replace(\"precision highp float\", \"precision mediump float\");\r\n }\r\n }\r\n return source;\r\n };\r\n ShaderProcessor._ExtractOperation = function (expression) {\r\n var regex = /defined\\((.+)\\)/;\r\n var match = regex.exec(expression);\r\n if (match && match.length) {\r\n return new ShaderDefineIsDefinedOperator(match[1].trim(), expression[0] === \"!\");\r\n }\r\n var operators = [\"==\", \">=\", \"<=\", \"<\", \">\"];\r\n var operator = \"\";\r\n var indexOperator = 0;\r\n for (var _i = 0, operators_1 = operators; _i < operators_1.length; _i++) {\r\n operator = operators_1[_i];\r\n indexOperator = expression.indexOf(operator);\r\n if (indexOperator > -1) {\r\n break;\r\n }\r\n }\r\n if (indexOperator === -1) {\r\n return new ShaderDefineIsDefinedOperator(expression);\r\n }\r\n var define = expression.substring(0, indexOperator).trim();\r\n var value = expression.substring(indexOperator + operator.length).trim();\r\n return new ShaderDefineArithmeticOperator(define, operator, value);\r\n };\r\n ShaderProcessor._BuildSubExpression = function (expression) {\r\n var indexOr = expression.indexOf(\"||\");\r\n if (indexOr === -1) {\r\n var indexAnd = expression.indexOf(\"&&\");\r\n if (indexAnd > -1) {\r\n var andOperator = new ShaderDefineAndOperator();\r\n var leftPart = expression.substring(0, indexAnd).trim();\r\n var rightPart = expression.substring(indexAnd + 2).trim();\r\n andOperator.leftOperand = this._BuildSubExpression(leftPart);\r\n andOperator.rightOperand = this._BuildSubExpression(rightPart);\r\n return andOperator;\r\n }\r\n else {\r\n return this._ExtractOperation(expression);\r\n }\r\n }\r\n else {\r\n var orOperator = new ShaderDefineOrOperator();\r\n var leftPart = expression.substring(0, indexOr).trim();\r\n var rightPart = expression.substring(indexOr + 2).trim();\r\n orOperator.leftOperand = this._BuildSubExpression(leftPart);\r\n orOperator.rightOperand = this._BuildSubExpression(rightPart);\r\n return orOperator;\r\n }\r\n };\r\n ShaderProcessor._BuildExpression = function (line, start) {\r\n var node = new ShaderCodeTestNode();\r\n var command = line.substring(0, start);\r\n var expression = line.substring(start).trim();\r\n if (command === \"#ifdef\") {\r\n node.testExpression = new ShaderDefineIsDefinedOperator(expression);\r\n }\r\n else if (command === \"#ifndef\") {\r\n node.testExpression = new ShaderDefineIsDefinedOperator(expression, true);\r\n }\r\n else {\r\n node.testExpression = this._BuildSubExpression(expression);\r\n }\r\n return node;\r\n };\r\n ShaderProcessor._MoveCursorWithinIf = function (cursor, rootNode, ifNode) {\r\n var line = cursor.currentLine;\r\n while (this._MoveCursor(cursor, ifNode)) {\r\n line = cursor.currentLine;\r\n var first5 = line.substring(0, 5).toLowerCase();\r\n if (first5 === \"#else\") {\r\n var elseNode = new ShaderCodeNode();\r\n rootNode.children.push(elseNode);\r\n this._MoveCursor(cursor, elseNode);\r\n return;\r\n }\r\n else if (first5 === \"#elif\") {\r\n var elifNode = this._BuildExpression(line, 5);\r\n rootNode.children.push(elifNode);\r\n ifNode = elifNode;\r\n }\r\n }\r\n };\r\n ShaderProcessor._MoveCursor = function (cursor, rootNode) {\r\n while (cursor.canRead) {\r\n cursor.lineIndex++;\r\n var line = cursor.currentLine;\r\n var keywords = /(#ifdef)|(#else)|(#elif)|(#endif)|(#ifndef)|(#if)/;\r\n var matches = keywords.exec(line);\r\n if (matches && matches.length) {\r\n var keyword = matches[0];\r\n switch (keyword) {\r\n case \"#ifdef\": {\r\n var newRootNode = new ShaderCodeConditionNode();\r\n rootNode.children.push(newRootNode);\r\n var ifNode = this._BuildExpression(line, 6);\r\n newRootNode.children.push(ifNode);\r\n this._MoveCursorWithinIf(cursor, newRootNode, ifNode);\r\n break;\r\n }\r\n case \"#else\":\r\n case \"#elif\":\r\n return true;\r\n case \"#endif\":\r\n return false;\r\n case \"#ifndef\": {\r\n var newRootNode = new ShaderCodeConditionNode();\r\n rootNode.children.push(newRootNode);\r\n var ifNode = this._BuildExpression(line, 7);\r\n newRootNode.children.push(ifNode);\r\n this._MoveCursorWithinIf(cursor, newRootNode, ifNode);\r\n break;\r\n }\r\n case \"#if\": {\r\n var newRootNode = new ShaderCodeConditionNode();\r\n var ifNode = this._BuildExpression(line, 3);\r\n rootNode.children.push(newRootNode);\r\n newRootNode.children.push(ifNode);\r\n this._MoveCursorWithinIf(cursor, newRootNode, ifNode);\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n var newNode = new ShaderCodeNode();\r\n newNode.line = line;\r\n rootNode.children.push(newNode);\r\n // Detect additional defines\r\n if (line[0] === \"#\" && line[1] === \"d\") {\r\n var split = line.replace(\";\", \"\").split(\" \");\r\n newNode.additionalDefineKey = split[1];\r\n if (split.length === 3) {\r\n newNode.additionalDefineValue = split[2];\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n ShaderProcessor._EvaluatePreProcessors = function (sourceCode, preprocessors, options) {\r\n var rootNode = new ShaderCodeNode();\r\n var cursor = new ShaderCodeCursor();\r\n cursor.lineIndex = -1;\r\n cursor.lines = sourceCode.split(\"\\n\");\r\n // Decompose (We keep it in 2 steps so it is easier to maintain and perf hit is insignificant)\r\n this._MoveCursor(cursor, rootNode);\r\n // Recompose\r\n return rootNode.process(preprocessors, options);\r\n };\r\n ShaderProcessor._PreparePreProcessors = function (options) {\r\n var defines = options.defines;\r\n var preprocessors = {};\r\n for (var _i = 0, defines_1 = defines; _i < defines_1.length; _i++) {\r\n var define = defines_1[_i];\r\n var keyValue = define.replace(\"#define\", \"\").replace(\";\", \"\").trim();\r\n var split = keyValue.split(\" \");\r\n preprocessors[split[0]] = split.length > 1 ? split[1] : \"\";\r\n }\r\n preprocessors[\"GL_ES\"] = \"true\";\r\n preprocessors[\"__VERSION__\"] = options.version;\r\n preprocessors[options.platformName] = \"true\";\r\n return preprocessors;\r\n };\r\n ShaderProcessor._ProcessShaderConversion = function (sourceCode, options) {\r\n var preparedSourceCode = this._ProcessPrecision(sourceCode, options);\r\n if (!options.processor) {\r\n return preparedSourceCode;\r\n }\r\n // Already converted\r\n if (preparedSourceCode.indexOf(\"#version 3\") !== -1) {\r\n return preparedSourceCode.replace(\"#version 300 es\", \"\");\r\n }\r\n var defines = options.defines;\r\n var preprocessors = this._PreparePreProcessors(options);\r\n // General pre processing\r\n if (options.processor.preProcessor) {\r\n preparedSourceCode = options.processor.preProcessor(preparedSourceCode, defines, options.isFragment);\r\n }\r\n preparedSourceCode = this._EvaluatePreProcessors(preparedSourceCode, preprocessors, options);\r\n // Post processing\r\n if (options.processor.postProcessor) {\r\n preparedSourceCode = options.processor.postProcessor(preparedSourceCode, defines, options.isFragment);\r\n }\r\n return preparedSourceCode;\r\n };\r\n ShaderProcessor._ProcessIncludes = function (sourceCode, options, callback) {\r\n var _this = this;\r\n var regex = /#include<(.+)>(\\((.*)\\))*(\\[(.*)\\])*/g;\r\n var match = regex.exec(sourceCode);\r\n var returnValue = new String(sourceCode);\r\n while (match != null) {\r\n var includeFile = match[1];\r\n // Uniform declaration\r\n if (includeFile.indexOf(\"__decl__\") !== -1) {\r\n includeFile = includeFile.replace(/__decl__/, \"\");\r\n if (options.supportsUniformBuffers) {\r\n includeFile = includeFile.replace(/Vertex/, \"Ubo\");\r\n includeFile = includeFile.replace(/Fragment/, \"Ubo\");\r\n }\r\n includeFile = includeFile + \"Declaration\";\r\n }\r\n if (options.includesShadersStore[includeFile]) {\r\n // Substitution\r\n var includeContent = options.includesShadersStore[includeFile];\r\n if (match[2]) {\r\n var splits = match[3].split(\",\");\r\n for (var index = 0; index < splits.length; index += 2) {\r\n var source = new RegExp(splits[index], \"g\");\r\n var dest = splits[index + 1];\r\n includeContent = includeContent.replace(source, dest);\r\n }\r\n }\r\n if (match[4]) {\r\n var indexString = match[5];\r\n if (indexString.indexOf(\"..\") !== -1) {\r\n var indexSplits = indexString.split(\"..\");\r\n var minIndex = parseInt(indexSplits[0]);\r\n var maxIndex = parseInt(indexSplits[1]);\r\n var sourceIncludeContent = includeContent.slice(0);\r\n includeContent = \"\";\r\n if (isNaN(maxIndex)) {\r\n maxIndex = options.indexParameters[indexSplits[1]];\r\n }\r\n for (var i = minIndex; i < maxIndex; i++) {\r\n if (!options.supportsUniformBuffers) {\r\n // Ubo replacement\r\n sourceIncludeContent = sourceIncludeContent.replace(/light\\{X\\}.(\\w*)/g, function (str, p1) {\r\n return p1 + \"{X}\";\r\n });\r\n }\r\n includeContent += sourceIncludeContent.replace(/\\{X\\}/g, i.toString()) + \"\\n\";\r\n }\r\n }\r\n else {\r\n if (!options.supportsUniformBuffers) {\r\n // Ubo replacement\r\n includeContent = includeContent.replace(/light\\{X\\}.(\\w*)/g, function (str, p1) {\r\n return p1 + \"{X}\";\r\n });\r\n }\r\n includeContent = includeContent.replace(/\\{X\\}/g, indexString);\r\n }\r\n }\r\n // Replace\r\n returnValue = returnValue.replace(match[0], includeContent);\r\n }\r\n else {\r\n var includeShaderUrl = options.shadersRepository + \"ShadersInclude/\" + includeFile + \".fx\";\r\n FileTools.LoadFile(includeShaderUrl, function (fileContent) {\r\n options.includesShadersStore[includeFile] = fileContent;\r\n _this._ProcessIncludes(returnValue, options, callback);\r\n });\r\n return;\r\n }\r\n match = regex.exec(sourceCode);\r\n }\r\n callback(returnValue);\r\n };\r\n return ShaderProcessor;\r\n}());\r\nexport { ShaderProcessor };\r\n//# sourceMappingURL=shaderProcessor.js.map"
  6559. },
  6560. {
  6561. "id": "../../.temp/packageES6Dev/core/Engines/WebGL/webGL2ShaderProcessors.js",
  6562. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\WebGL\\webGL2ShaderProcessors.js",
  6563. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/WebGL/webGL2ShaderProcessors.js",
  6564. "index": 34,
  6565. "index2": 32,
  6566. "size": 1975,
  6567. "cacheable": true,
  6568. "built": true,
  6569. "optional": false,
  6570. "prefetched": false,
  6571. "chunks": [
  6572. "thinEngineOnly"
  6573. ],
  6574. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6575. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6576. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6577. "issuerPath": [
  6578. {
  6579. "id": "./thinEngineOnly.ts",
  6580. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  6581. "name": "./thinEngineOnly.ts",
  6582. "profile": {
  6583. "factory": 42,
  6584. "building": 2115
  6585. }
  6586. },
  6587. {
  6588. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6589. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6590. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6591. "profile": {
  6592. "factory": 6,
  6593. "building": 110
  6594. }
  6595. }
  6596. ],
  6597. "profile": {
  6598. "factory": 59,
  6599. "building": 41,
  6600. "dependencies": 4
  6601. },
  6602. "failed": false,
  6603. "errors": 0,
  6604. "warnings": 0,
  6605. "assets": [],
  6606. "reasons": [
  6607. {
  6608. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6609. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6610. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6611. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6612. "type": "harmony side effect evaluation",
  6613. "userRequest": "./WebGL/webGL2ShaderProcessors",
  6614. "loc": "15:0-71"
  6615. },
  6616. {
  6617. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6618. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6619. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6620. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6621. "type": "harmony import specifier",
  6622. "userRequest": "./WebGL/webGL2ShaderProcessors",
  6623. "loc": "301:40-61"
  6624. }
  6625. ],
  6626. "providedExports": [
  6627. "WebGL2ShaderProcessor"
  6628. ],
  6629. "optimizationBailout": [],
  6630. "depth": 2,
  6631. "source": "/** @hidden */\r\nvar WebGL2ShaderProcessor = /** @class */ (function () {\r\n function WebGL2ShaderProcessor() {\r\n }\r\n WebGL2ShaderProcessor.prototype.attributeProcessor = function (attribute) {\r\n return attribute.replace(\"attribute\", \"in\");\r\n };\r\n WebGL2ShaderProcessor.prototype.varyingProcessor = function (varying, isFragment) {\r\n return varying.replace(\"varying\", isFragment ? \"in\" : \"out\");\r\n };\r\n WebGL2ShaderProcessor.prototype.postProcessor = function (code, defines, isFragment) {\r\n var hasDrawBuffersExtension = code.search(/#extension.+GL_EXT_draw_buffers.+require/) !== -1;\r\n // Remove extensions\r\n var regex = /#extension.+(GL_OVR_multiview2|GL_OES_standard_derivatives|GL_EXT_shader_texture_lod|GL_EXT_frag_depth|GL_EXT_draw_buffers).+(enable|require)/g;\r\n code = code.replace(regex, \"\");\r\n // Replace instructions\r\n code = code.replace(/texture2D\\s*\\(/g, \"texture(\");\r\n if (isFragment) {\r\n code = code.replace(/texture2DLodEXT\\s*\\(/g, \"textureLod(\");\r\n code = code.replace(/textureCubeLodEXT\\s*\\(/g, \"textureLod(\");\r\n code = code.replace(/textureCube\\s*\\(/g, \"texture(\");\r\n code = code.replace(/gl_FragDepthEXT/g, \"gl_FragDepth\");\r\n code = code.replace(/gl_FragColor/g, \"glFragColor\");\r\n code = code.replace(/gl_FragData/g, \"glFragData\");\r\n code = code.replace(/void\\s+?main\\s*\\(/g, (hasDrawBuffersExtension ? \"\" : \"out vec4 glFragColor;\\n\") + \"void main(\");\r\n }\r\n else {\r\n var hasMultiviewExtension = defines.indexOf(\"#define MULTIVIEW\") !== -1;\r\n if (hasMultiviewExtension) {\r\n return \"#extension GL_OVR_multiview2 : require\\nlayout (num_views = 2) in;\\n\" + code;\r\n }\r\n }\r\n return code;\r\n };\r\n return WebGL2ShaderProcessor;\r\n}());\r\nexport { WebGL2ShaderProcessor };\r\n//# sourceMappingURL=webGL2ShaderProcessors.js.map"
  6632. },
  6633. {
  6634. "id": "../../.temp/packageES6Dev/core/Engines/WebGL/webGLPipelineContext.js",
  6635. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\WebGL\\webGLPipelineContext.js",
  6636. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/WebGL/webGLPipelineContext.js",
  6637. "index": 37,
  6638. "index2": 35,
  6639. "size": 1078,
  6640. "cacheable": true,
  6641. "built": true,
  6642. "optional": false,
  6643. "prefetched": false,
  6644. "chunks": [
  6645. "thinEngineOnly"
  6646. ],
  6647. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6648. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6649. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6650. "issuerPath": [
  6651. {
  6652. "id": "./thinEngineOnly.ts",
  6653. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  6654. "name": "./thinEngineOnly.ts",
  6655. "profile": {
  6656. "factory": 42,
  6657. "building": 2115
  6658. }
  6659. },
  6660. {
  6661. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6662. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6663. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6664. "profile": {
  6665. "factory": 6,
  6666. "building": 110
  6667. }
  6668. }
  6669. ],
  6670. "profile": {
  6671. "factory": 59,
  6672. "building": 41,
  6673. "dependencies": 4
  6674. },
  6675. "failed": false,
  6676. "errors": 0,
  6677. "warnings": 0,
  6678. "assets": [],
  6679. "reasons": [
  6680. {
  6681. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6682. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6683. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6684. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6685. "type": "harmony side effect evaluation",
  6686. "userRequest": "./WebGL/webGLPipelineContext",
  6687. "loc": "17:0-68"
  6688. },
  6689. {
  6690. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6691. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6692. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6693. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6694. "type": "harmony import specifier",
  6695. "userRequest": "./WebGL/webGLPipelineContext",
  6696. "loc": "1758:34-54"
  6697. }
  6698. ],
  6699. "providedExports": [
  6700. "WebGLPipelineContext"
  6701. ],
  6702. "optimizationBailout": [],
  6703. "depth": 2,
  6704. "source": "/** @hidden */\r\nvar WebGLPipelineContext = /** @class */ (function () {\r\n function WebGLPipelineContext() {\r\n }\r\n Object.defineProperty(WebGLPipelineContext.prototype, \"isAsync\", {\r\n get: function () {\r\n return this.isParallelCompiled;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WebGLPipelineContext.prototype, \"isReady\", {\r\n get: function () {\r\n if (this.program) {\r\n if (this.isParallelCompiled) {\r\n return this.engine._isRenderingStateCompiled(this);\r\n }\r\n return true;\r\n }\r\n return false;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n WebGLPipelineContext.prototype._handlesSpectorRebuildCallback = function (onCompiled) {\r\n if (onCompiled && this.program) {\r\n onCompiled(this.program);\r\n }\r\n };\r\n return WebGLPipelineContext;\r\n}());\r\nexport { WebGLPipelineContext };\r\n//# sourceMappingURL=webGLPipelineContext.js.map"
  6705. },
  6706. {
  6707. "id": "../../.temp/packageES6Dev/core/Engines/constants.js",
  6708. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\constants.js",
  6709. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/constants.js",
  6710. "index": 6,
  6711. "index2": 3,
  6712. "size": 19306,
  6713. "cacheable": true,
  6714. "built": true,
  6715. "optional": false,
  6716. "prefetched": false,
  6717. "chunks": [
  6718. "thinEngineOnly"
  6719. ],
  6720. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6721. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6722. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6723. "issuerPath": [
  6724. {
  6725. "id": "./thinEngineOnly.ts",
  6726. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  6727. "name": "./thinEngineOnly.ts",
  6728. "profile": {
  6729. "factory": 42,
  6730. "building": 2115
  6731. }
  6732. },
  6733. {
  6734. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6735. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6736. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6737. "profile": {
  6738. "factory": 6,
  6739. "building": 110
  6740. }
  6741. }
  6742. ],
  6743. "profile": {
  6744. "factory": 59,
  6745. "building": 41,
  6746. "dependencies": 4
  6747. },
  6748. "failed": false,
  6749. "errors": 0,
  6750. "warnings": 0,
  6751. "assets": [],
  6752. "reasons": [
  6753. {
  6754. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6755. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6756. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6757. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6758. "type": "harmony side effect evaluation",
  6759. "userRequest": "./constants",
  6760. "loc": "11:0-40"
  6761. },
  6762. {
  6763. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6764. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6765. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6766. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6767. "type": "harmony import specifier",
  6768. "userRequest": "./constants",
  6769. "loc": "444:84-93"
  6770. },
  6771. {
  6772. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6773. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6774. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6775. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6776. "type": "harmony import specifier",
  6777. "userRequest": "./constants",
  6778. "loc": "444:128-137"
  6779. },
  6780. {
  6781. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6782. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6783. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6784. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6785. "type": "harmony import specifier",
  6786. "userRequest": "./constants",
  6787. "loc": "457:91-100"
  6788. },
  6789. {
  6790. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6791. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6792. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6793. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6794. "type": "harmony import specifier",
  6795. "userRequest": "./constants",
  6796. "loc": "457:135-144"
  6797. },
  6798. {
  6799. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6800. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6801. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6802. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6803. "type": "harmony import specifier",
  6804. "userRequest": "./constants",
  6805. "loc": "472:80-89"
  6806. },
  6807. {
  6808. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6809. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6810. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6811. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6812. "type": "harmony import specifier",
  6813. "userRequest": "./constants",
  6814. "loc": "472:110-119"
  6815. },
  6816. {
  6817. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6818. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6819. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6820. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6821. "type": "harmony import specifier",
  6822. "userRequest": "./constants",
  6823. "loc": "472:160-169"
  6824. },
  6825. {
  6826. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6827. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6828. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6829. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6830. "type": "harmony import specifier",
  6831. "userRequest": "./constants",
  6832. "loc": "1569:45-54"
  6833. },
  6834. {
  6835. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6836. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6837. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6838. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6839. "type": "harmony import specifier",
  6840. "userRequest": "./constants",
  6841. "loc": "1569:83-92"
  6842. },
  6843. {
  6844. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6845. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6846. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6847. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6848. "type": "harmony import specifier",
  6849. "userRequest": "./constants",
  6850. "loc": "1578:28-37"
  6851. },
  6852. {
  6853. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6854. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6855. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6856. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6857. "type": "harmony import specifier",
  6858. "userRequest": "./constants",
  6859. "loc": "1588:43-52"
  6860. },
  6861. {
  6862. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6863. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6864. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6865. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6866. "type": "harmony import specifier",
  6867. "userRequest": "./constants",
  6868. "loc": "1588:81-90"
  6869. },
  6870. {
  6871. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6872. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6873. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6874. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6875. "type": "harmony import specifier",
  6876. "userRequest": "./constants",
  6877. "loc": "1634:17-26"
  6878. },
  6879. {
  6880. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6881. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6882. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6883. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6884. "type": "harmony import specifier",
  6885. "userRequest": "./constants",
  6886. "loc": "1636:17-26"
  6887. },
  6888. {
  6889. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6890. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6891. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6892. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6893. "type": "harmony import specifier",
  6894. "userRequest": "./constants",
  6895. "loc": "1638:17-26"
  6896. },
  6897. {
  6898. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6899. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6900. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6901. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6902. "type": "harmony import specifier",
  6903. "userRequest": "./constants",
  6904. "loc": "1641:17-26"
  6905. },
  6906. {
  6907. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6908. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6909. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6910. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6911. "type": "harmony import specifier",
  6912. "userRequest": "./constants",
  6913. "loc": "1643:17-26"
  6914. },
  6915. {
  6916. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6917. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6918. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6919. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6920. "type": "harmony import specifier",
  6921. "userRequest": "./constants",
  6922. "loc": "1645:17-26"
  6923. },
  6924. {
  6925. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6926. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6927. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6928. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6929. "type": "harmony import specifier",
  6930. "userRequest": "./constants",
  6931. "loc": "1647:17-26"
  6932. },
  6933. {
  6934. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6935. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6936. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6937. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6938. "type": "harmony import specifier",
  6939. "userRequest": "./constants",
  6940. "loc": "1649:17-26"
  6941. },
  6942. {
  6943. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6944. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6945. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6946. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6947. "type": "harmony import specifier",
  6948. "userRequest": "./constants",
  6949. "loc": "1651:17-26"
  6950. },
  6951. {
  6952. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6953. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6954. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6955. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6956. "type": "harmony import specifier",
  6957. "userRequest": "./constants",
  6958. "loc": "2263:17-26"
  6959. },
  6960. {
  6961. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6962. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6963. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6964. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6965. "type": "harmony import specifier",
  6966. "userRequest": "./constants",
  6967. "loc": "2272:17-26"
  6968. },
  6969. {
  6970. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6971. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6972. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6973. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6974. "type": "harmony import specifier",
  6975. "userRequest": "./constants",
  6976. "loc": "2281:17-26"
  6977. },
  6978. {
  6979. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6980. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6981. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6982. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6983. "type": "harmony import specifier",
  6984. "userRequest": "./constants",
  6985. "loc": "2290:17-26"
  6986. },
  6987. {
  6988. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6989. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6990. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6991. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  6992. "type": "harmony import specifier",
  6993. "userRequest": "./constants",
  6994. "loc": "2299:17-26"
  6995. },
  6996. {
  6997. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  6998. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  6999. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7000. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7001. "type": "harmony import specifier",
  7002. "userRequest": "./constants",
  7003. "loc": "2308:17-26"
  7004. },
  7005. {
  7006. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7007. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7008. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7009. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7010. "type": "harmony import specifier",
  7011. "userRequest": "./constants",
  7012. "loc": "2317:17-26"
  7013. },
  7014. {
  7015. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7016. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7017. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7018. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7019. "type": "harmony import specifier",
  7020. "userRequest": "./constants",
  7021. "loc": "2321:17-26"
  7022. },
  7023. {
  7024. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7025. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7026. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7027. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7028. "type": "harmony import specifier",
  7029. "userRequest": "./constants",
  7030. "loc": "2325:17-26"
  7031. },
  7032. {
  7033. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7034. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7035. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7036. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7037. "type": "harmony import specifier",
  7038. "userRequest": "./constants",
  7039. "loc": "2334:17-26"
  7040. },
  7041. {
  7042. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7043. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7044. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7045. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7046. "type": "harmony import specifier",
  7047. "userRequest": "./constants",
  7048. "loc": "2343:17-26"
  7049. },
  7050. {
  7051. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7052. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7053. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7054. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7055. "type": "harmony import specifier",
  7056. "userRequest": "./constants",
  7057. "loc": "2347:17-26"
  7058. },
  7059. {
  7060. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7061. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7062. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7063. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7064. "type": "harmony import specifier",
  7065. "userRequest": "./constants",
  7066. "loc": "2387:54-63"
  7067. },
  7068. {
  7069. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7070. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7071. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7072. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7073. "type": "harmony import specifier",
  7074. "userRequest": "./constants",
  7075. "loc": "2572:38-47"
  7076. },
  7077. {
  7078. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7079. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7080. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7081. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7082. "type": "harmony import specifier",
  7083. "userRequest": "./constants",
  7084. "loc": "2607:52-61"
  7085. },
  7086. {
  7087. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7088. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7089. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7090. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7091. "type": "harmony import specifier",
  7092. "userRequest": "./constants",
  7093. "loc": "2663:79-88"
  7094. },
  7095. {
  7096. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7097. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7098. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7099. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7100. "type": "harmony import specifier",
  7101. "userRequest": "./constants",
  7102. "loc": "2675:73-82"
  7103. },
  7104. {
  7105. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7106. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7107. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7108. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7109. "type": "harmony import specifier",
  7110. "userRequest": "./constants",
  7111. "loc": "2699:59-68"
  7112. },
  7113. {
  7114. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7115. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7116. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7117. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7118. "type": "harmony import specifier",
  7119. "userRequest": "./constants",
  7120. "loc": "2699:101-110"
  7121. },
  7122. {
  7123. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7124. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7125. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7126. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7127. "type": "harmony import specifier",
  7128. "userRequest": "./constants",
  7129. "loc": "2700:31-40"
  7130. },
  7131. {
  7132. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7133. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7134. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7135. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7136. "type": "harmony import specifier",
  7137. "userRequest": "./constants",
  7138. "loc": "2710:62-71"
  7139. },
  7140. {
  7141. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7142. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7143. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7144. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7145. "type": "harmony import specifier",
  7146. "userRequest": "./constants",
  7147. "loc": "2922:54-63"
  7148. },
  7149. {
  7150. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7151. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7152. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7153. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7154. "type": "harmony import specifier",
  7155. "userRequest": "./constants",
  7156. "loc": "3109:17-26"
  7157. },
  7158. {
  7159. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7160. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7161. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7162. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7163. "type": "harmony import specifier",
  7164. "userRequest": "./constants",
  7165. "loc": "3111:17-26"
  7166. },
  7167. {
  7168. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7169. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7170. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7171. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7172. "type": "harmony import specifier",
  7173. "userRequest": "./constants",
  7174. "loc": "3113:17-26"
  7175. },
  7176. {
  7177. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7178. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7179. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7180. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7181. "type": "harmony import specifier",
  7182. "userRequest": "./constants",
  7183. "loc": "3138:44-53"
  7184. },
  7185. {
  7186. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7187. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7188. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7189. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7190. "type": "harmony import specifier",
  7191. "userRequest": "./constants",
  7192. "loc": "3199:67-76"
  7193. },
  7194. {
  7195. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7196. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7197. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7198. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7199. "type": "harmony import specifier",
  7200. "userRequest": "./constants",
  7201. "loc": "3199:127-136"
  7202. },
  7203. {
  7204. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7205. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7206. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7207. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7208. "type": "harmony import specifier",
  7209. "userRequest": "./constants",
  7210. "loc": "3257:45-54"
  7211. },
  7212. {
  7213. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7214. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7215. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7216. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7217. "type": "harmony import specifier",
  7218. "userRequest": "./constants",
  7219. "loc": "3258:48-57"
  7220. },
  7221. {
  7222. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7223. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7224. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7225. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7226. "type": "harmony import specifier",
  7227. "userRequest": "./constants",
  7228. "loc": "3259:48-57"
  7229. },
  7230. {
  7231. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7232. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7233. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7234. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7235. "type": "harmony import specifier",
  7236. "userRequest": "./constants",
  7237. "loc": "3380:44-53"
  7238. },
  7239. {
  7240. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7241. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7242. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7243. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7244. "type": "harmony import specifier",
  7245. "userRequest": "./constants",
  7246. "loc": "3386:44-53"
  7247. },
  7248. {
  7249. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7250. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7251. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7252. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7253. "type": "harmony import specifier",
  7254. "userRequest": "./constants",
  7255. "loc": "3432:21-30"
  7256. },
  7257. {
  7258. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7259. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7260. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7261. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7262. "type": "harmony import specifier",
  7263. "userRequest": "./constants",
  7264. "loc": "3434:21-30"
  7265. },
  7266. {
  7267. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7268. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7269. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7270. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7271. "type": "harmony import specifier",
  7272. "userRequest": "./constants",
  7273. "loc": "3436:21-30"
  7274. },
  7275. {
  7276. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7277. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7278. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7279. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7280. "type": "harmony import specifier",
  7281. "userRequest": "./constants",
  7282. "loc": "3438:21-30"
  7283. },
  7284. {
  7285. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7286. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7287. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7288. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7289. "type": "harmony import specifier",
  7290. "userRequest": "./constants",
  7291. "loc": "3440:21-30"
  7292. },
  7293. {
  7294. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7295. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7296. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7297. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7298. "type": "harmony import specifier",
  7299. "userRequest": "./constants",
  7300. "loc": "3442:21-30"
  7301. },
  7302. {
  7303. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7304. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7305. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7306. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7307. "type": "harmony import specifier",
  7308. "userRequest": "./constants",
  7309. "loc": "3448:17-26"
  7310. },
  7311. {
  7312. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7313. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7314. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7315. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7316. "type": "harmony import specifier",
  7317. "userRequest": "./constants",
  7318. "loc": "3450:17-26"
  7319. },
  7320. {
  7321. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7322. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7323. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7324. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7325. "type": "harmony import specifier",
  7326. "userRequest": "./constants",
  7327. "loc": "3452:17-26"
  7328. },
  7329. {
  7330. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7331. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7332. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7333. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7334. "type": "harmony import specifier",
  7335. "userRequest": "./constants",
  7336. "loc": "3454:17-26"
  7337. },
  7338. {
  7339. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7340. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7341. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7342. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7343. "type": "harmony import specifier",
  7344. "userRequest": "./constants",
  7345. "loc": "3456:17-26"
  7346. },
  7347. {
  7348. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7349. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7350. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7351. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7352. "type": "harmony import specifier",
  7353. "userRequest": "./constants",
  7354. "loc": "3458:17-26"
  7355. },
  7356. {
  7357. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7358. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7359. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7360. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7361. "type": "harmony import specifier",
  7362. "userRequest": "./constants",
  7363. "loc": "3460:17-26"
  7364. },
  7365. {
  7366. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7367. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7368. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7369. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7370. "type": "harmony import specifier",
  7371. "userRequest": "./constants",
  7372. "loc": "3462:17-26"
  7373. },
  7374. {
  7375. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7376. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7377. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7378. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7379. "type": "harmony import specifier",
  7380. "userRequest": "./constants",
  7381. "loc": "3464:17-26"
  7382. },
  7383. {
  7384. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7385. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7386. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7387. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7388. "type": "harmony import specifier",
  7389. "userRequest": "./constants",
  7390. "loc": "3466:17-26"
  7391. },
  7392. {
  7393. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7394. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7395. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7396. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7397. "type": "harmony import specifier",
  7398. "userRequest": "./constants",
  7399. "loc": "3468:17-26"
  7400. },
  7401. {
  7402. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7403. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7404. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7405. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7406. "type": "harmony import specifier",
  7407. "userRequest": "./constants",
  7408. "loc": "3470:17-26"
  7409. },
  7410. {
  7411. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7412. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7413. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7414. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7415. "type": "harmony import specifier",
  7416. "userRequest": "./constants",
  7417. "loc": "3472:17-26"
  7418. },
  7419. {
  7420. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7421. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7422. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7423. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7424. "type": "harmony import specifier",
  7425. "userRequest": "./constants",
  7426. "loc": "3474:17-26"
  7427. },
  7428. {
  7429. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7430. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7431. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7432. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7433. "type": "harmony import specifier",
  7434. "userRequest": "./constants",
  7435. "loc": "3476:17-26"
  7436. },
  7437. {
  7438. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7439. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7440. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7441. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7442. "type": "harmony import specifier",
  7443. "userRequest": "./constants",
  7444. "loc": "3478:17-26"
  7445. },
  7446. {
  7447. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7448. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7449. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7450. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7451. "type": "harmony import specifier",
  7452. "userRequest": "./constants",
  7453. "loc": "3487:17-26"
  7454. },
  7455. {
  7456. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7457. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7458. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7459. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7460. "type": "harmony import specifier",
  7461. "userRequest": "./constants",
  7462. "loc": "3490:17-26"
  7463. },
  7464. {
  7465. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7466. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7467. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7468. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7469. "type": "harmony import specifier",
  7470. "userRequest": "./constants",
  7471. "loc": "3493:17-26"
  7472. },
  7473. {
  7474. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7475. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7476. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7477. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7478. "type": "harmony import specifier",
  7479. "userRequest": "./constants",
  7480. "loc": "3496:17-26"
  7481. },
  7482. {
  7483. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7484. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7485. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7486. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7487. "type": "harmony import specifier",
  7488. "userRequest": "./constants",
  7489. "loc": "3499:17-26"
  7490. },
  7491. {
  7492. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7493. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7494. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7495. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7496. "type": "harmony import specifier",
  7497. "userRequest": "./constants",
  7498. "loc": "3502:17-26"
  7499. },
  7500. {
  7501. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7502. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7503. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7504. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7505. "type": "harmony import specifier",
  7506. "userRequest": "./constants",
  7507. "loc": "3505:17-26"
  7508. },
  7509. {
  7510. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7511. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7512. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7513. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7514. "type": "harmony import specifier",
  7515. "userRequest": "./constants",
  7516. "loc": "3511:21-30"
  7517. },
  7518. {
  7519. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7520. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7521. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7522. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7523. "type": "harmony import specifier",
  7524. "userRequest": "./constants",
  7525. "loc": "3514:21-30"
  7526. },
  7527. {
  7528. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7529. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7530. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7531. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7532. "type": "harmony import specifier",
  7533. "userRequest": "./constants",
  7534. "loc": "3517:21-30"
  7535. },
  7536. {
  7537. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7538. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7539. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7540. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7541. "type": "harmony import specifier",
  7542. "userRequest": "./constants",
  7543. "loc": "3520:21-30"
  7544. },
  7545. {
  7546. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7547. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7548. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7549. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7550. "type": "harmony import specifier",
  7551. "userRequest": "./constants",
  7552. "loc": "3532:25-34"
  7553. },
  7554. {
  7555. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7556. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7557. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7558. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7559. "type": "harmony import specifier",
  7560. "userRequest": "./constants",
  7561. "loc": "3534:25-34"
  7562. },
  7563. {
  7564. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7565. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7566. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7567. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7568. "type": "harmony import specifier",
  7569. "userRequest": "./constants",
  7570. "loc": "3536:25-34"
  7571. },
  7572. {
  7573. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7574. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7575. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7576. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7577. "type": "harmony import specifier",
  7578. "userRequest": "./constants",
  7579. "loc": "3543:17-26"
  7580. },
  7581. {
  7582. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7583. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7584. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7585. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7586. "type": "harmony import specifier",
  7587. "userRequest": "./constants",
  7588. "loc": "3545:25-34"
  7589. },
  7590. {
  7591. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7592. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7593. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7594. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7595. "type": "harmony import specifier",
  7596. "userRequest": "./constants",
  7597. "loc": "3547:25-34"
  7598. },
  7599. {
  7600. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7601. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7602. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7603. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7604. "type": "harmony import specifier",
  7605. "userRequest": "./constants",
  7606. "loc": "3549:25-34"
  7607. },
  7608. {
  7609. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7610. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7611. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7612. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7613. "type": "harmony import specifier",
  7614. "userRequest": "./constants",
  7615. "loc": "3551:25-34"
  7616. },
  7617. {
  7618. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7619. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7620. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7621. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7622. "type": "harmony import specifier",
  7623. "userRequest": "./constants",
  7624. "loc": "3553:25-34"
  7625. },
  7626. {
  7627. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7628. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7629. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7630. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7631. "type": "harmony import specifier",
  7632. "userRequest": "./constants",
  7633. "loc": "3555:25-34"
  7634. },
  7635. {
  7636. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7637. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7638. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7639. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7640. "type": "harmony import specifier",
  7641. "userRequest": "./constants",
  7642. "loc": "3557:25-34"
  7643. },
  7644. {
  7645. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7646. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7647. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7648. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7649. "type": "harmony import specifier",
  7650. "userRequest": "./constants",
  7651. "loc": "3562:17-26"
  7652. },
  7653. {
  7654. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7655. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7656. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7657. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7658. "type": "harmony import specifier",
  7659. "userRequest": "./constants",
  7660. "loc": "3564:25-34"
  7661. },
  7662. {
  7663. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7664. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7665. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7666. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7667. "type": "harmony import specifier",
  7668. "userRequest": "./constants",
  7669. "loc": "3566:25-34"
  7670. },
  7671. {
  7672. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7673. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7674. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7675. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7676. "type": "harmony import specifier",
  7677. "userRequest": "./constants",
  7678. "loc": "3568:25-34"
  7679. },
  7680. {
  7681. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7682. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7683. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7684. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7685. "type": "harmony import specifier",
  7686. "userRequest": "./constants",
  7687. "loc": "3570:25-34"
  7688. },
  7689. {
  7690. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7691. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7692. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7693. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7694. "type": "harmony import specifier",
  7695. "userRequest": "./constants",
  7696. "loc": "3572:25-34"
  7697. },
  7698. {
  7699. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7700. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7701. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7702. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7703. "type": "harmony import specifier",
  7704. "userRequest": "./constants",
  7705. "loc": "3574:25-34"
  7706. },
  7707. {
  7708. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7709. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7710. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7711. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7712. "type": "harmony import specifier",
  7713. "userRequest": "./constants",
  7714. "loc": "3576:25-34"
  7715. },
  7716. {
  7717. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7718. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7719. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7720. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7721. "type": "harmony import specifier",
  7722. "userRequest": "./constants",
  7723. "loc": "3578:25-34"
  7724. },
  7725. {
  7726. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7727. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7728. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7729. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7730. "type": "harmony import specifier",
  7731. "userRequest": "./constants",
  7732. "loc": "3580:25-34"
  7733. },
  7734. {
  7735. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7736. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7737. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7738. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7739. "type": "harmony import specifier",
  7740. "userRequest": "./constants",
  7741. "loc": "3582:25-34"
  7742. },
  7743. {
  7744. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7745. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7746. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7747. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7748. "type": "harmony import specifier",
  7749. "userRequest": "./constants",
  7750. "loc": "3584:25-34"
  7751. },
  7752. {
  7753. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7754. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7755. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7756. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7757. "type": "harmony import specifier",
  7758. "userRequest": "./constants",
  7759. "loc": "3589:17-26"
  7760. },
  7761. {
  7762. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7763. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7764. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7765. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7766. "type": "harmony import specifier",
  7767. "userRequest": "./constants",
  7768. "loc": "3591:25-34"
  7769. },
  7770. {
  7771. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7772. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7773. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7774. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7775. "type": "harmony import specifier",
  7776. "userRequest": "./constants",
  7777. "loc": "3593:25-34"
  7778. },
  7779. {
  7780. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7781. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7782. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7783. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7784. "type": "harmony import specifier",
  7785. "userRequest": "./constants",
  7786. "loc": "3595:25-34"
  7787. },
  7788. {
  7789. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7790. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7791. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7792. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7793. "type": "harmony import specifier",
  7794. "userRequest": "./constants",
  7795. "loc": "3597:25-34"
  7796. },
  7797. {
  7798. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7799. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7800. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7801. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7802. "type": "harmony import specifier",
  7803. "userRequest": "./constants",
  7804. "loc": "3602:17-26"
  7805. },
  7806. {
  7807. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7808. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7809. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7810. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7811. "type": "harmony import specifier",
  7812. "userRequest": "./constants",
  7813. "loc": "3604:25-34"
  7814. },
  7815. {
  7816. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7817. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7818. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7819. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7820. "type": "harmony import specifier",
  7821. "userRequest": "./constants",
  7822. "loc": "3606:25-34"
  7823. },
  7824. {
  7825. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7826. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7827. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7828. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7829. "type": "harmony import specifier",
  7830. "userRequest": "./constants",
  7831. "loc": "3608:25-34"
  7832. },
  7833. {
  7834. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7835. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7836. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7837. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7838. "type": "harmony import specifier",
  7839. "userRequest": "./constants",
  7840. "loc": "3610:25-34"
  7841. },
  7842. {
  7843. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7844. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7845. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7846. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7847. "type": "harmony import specifier",
  7848. "userRequest": "./constants",
  7849. "loc": "3615:17-26"
  7850. },
  7851. {
  7852. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7853. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7854. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7855. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7856. "type": "harmony import specifier",
  7857. "userRequest": "./constants",
  7858. "loc": "3617:25-34"
  7859. },
  7860. {
  7861. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7862. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7863. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7864. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7865. "type": "harmony import specifier",
  7866. "userRequest": "./constants",
  7867. "loc": "3619:25-34"
  7868. },
  7869. {
  7870. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7871. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7872. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7873. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7874. "type": "harmony import specifier",
  7875. "userRequest": "./constants",
  7876. "loc": "3621:25-34"
  7877. },
  7878. {
  7879. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7880. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7881. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7882. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7883. "type": "harmony import specifier",
  7884. "userRequest": "./constants",
  7885. "loc": "3623:25-34"
  7886. },
  7887. {
  7888. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7889. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7890. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7891. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7892. "type": "harmony import specifier",
  7893. "userRequest": "./constants",
  7894. "loc": "3628:17-26"
  7895. },
  7896. {
  7897. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7898. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7899. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7900. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7901. "type": "harmony import specifier",
  7902. "userRequest": "./constants",
  7903. "loc": "3630:25-34"
  7904. },
  7905. {
  7906. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7907. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7908. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7909. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7910. "type": "harmony import specifier",
  7911. "userRequest": "./constants",
  7912. "loc": "3632:25-34"
  7913. },
  7914. {
  7915. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7916. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7917. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7918. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7919. "type": "harmony import specifier",
  7920. "userRequest": "./constants",
  7921. "loc": "3634:25-34"
  7922. },
  7923. {
  7924. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7925. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7926. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7927. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7928. "type": "harmony import specifier",
  7929. "userRequest": "./constants",
  7930. "loc": "3636:25-34"
  7931. },
  7932. {
  7933. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7934. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7935. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7936. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7937. "type": "harmony import specifier",
  7938. "userRequest": "./constants",
  7939. "loc": "3641:17-26"
  7940. },
  7941. {
  7942. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7943. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7944. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7945. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7946. "type": "harmony import specifier",
  7947. "userRequest": "./constants",
  7948. "loc": "3643:25-34"
  7949. },
  7950. {
  7951. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7952. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7953. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7954. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7955. "type": "harmony import specifier",
  7956. "userRequest": "./constants",
  7957. "loc": "3645:25-34"
  7958. },
  7959. {
  7960. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7961. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7962. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7963. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7964. "type": "harmony import specifier",
  7965. "userRequest": "./constants",
  7966. "loc": "3647:25-34"
  7967. },
  7968. {
  7969. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7970. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7971. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7972. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7973. "type": "harmony import specifier",
  7974. "userRequest": "./constants",
  7975. "loc": "3649:25-34"
  7976. },
  7977. {
  7978. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7979. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7980. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7981. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7982. "type": "harmony import specifier",
  7983. "userRequest": "./constants",
  7984. "loc": "3654:17-26"
  7985. },
  7986. {
  7987. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7988. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7989. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7990. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7991. "type": "harmony import specifier",
  7992. "userRequest": "./constants",
  7993. "loc": "3656:25-34"
  7994. },
  7995. {
  7996. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  7997. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  7998. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  7999. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8000. "type": "harmony import specifier",
  8001. "userRequest": "./constants",
  8002. "loc": "3658:25-34"
  8003. },
  8004. {
  8005. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8006. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8007. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8008. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8009. "type": "harmony import specifier",
  8010. "userRequest": "./constants",
  8011. "loc": "3660:25-34"
  8012. },
  8013. {
  8014. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8015. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8016. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8017. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8018. "type": "harmony import specifier",
  8019. "userRequest": "./constants",
  8020. "loc": "3662:25-34"
  8021. },
  8022. {
  8023. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8024. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8025. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8026. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8027. "type": "harmony import specifier",
  8028. "userRequest": "./constants",
  8029. "loc": "3667:17-26"
  8030. },
  8031. {
  8032. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8033. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8034. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8035. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8036. "type": "harmony import specifier",
  8037. "userRequest": "./constants",
  8038. "loc": "3669:17-26"
  8039. },
  8040. {
  8041. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8042. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8043. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8044. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8045. "type": "harmony import specifier",
  8046. "userRequest": "./constants",
  8047. "loc": "3671:17-26"
  8048. },
  8049. {
  8050. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8051. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8052. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8053. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8054. "type": "harmony import specifier",
  8055. "userRequest": "./constants",
  8056. "loc": "3673:17-26"
  8057. },
  8058. {
  8059. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8060. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8061. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8062. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8063. "type": "harmony import specifier",
  8064. "userRequest": "./constants",
  8065. "loc": "3675:17-26"
  8066. },
  8067. {
  8068. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8069. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8070. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8071. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8072. "type": "harmony import specifier",
  8073. "userRequest": "./constants",
  8074. "loc": "3677:17-26"
  8075. },
  8076. {
  8077. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8078. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8079. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8080. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8081. "type": "harmony import specifier",
  8082. "userRequest": "./constants",
  8083. "loc": "3679:25-34"
  8084. },
  8085. {
  8086. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8087. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8088. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8089. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8090. "type": "harmony import specifier",
  8091. "userRequest": "./constants",
  8092. "loc": "3681:25-34"
  8093. },
  8094. {
  8095. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8096. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8097. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8098. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8099. "type": "harmony import specifier",
  8100. "userRequest": "./constants",
  8101. "loc": "3691:21-30"
  8102. },
  8103. {
  8104. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8105. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8106. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8107. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8108. "type": "harmony import specifier",
  8109. "userRequest": "./constants",
  8110. "loc": "3694:26-35"
  8111. },
  8112. {
  8113. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8114. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8115. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8116. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8117. "type": "harmony import specifier",
  8118. "userRequest": "./constants",
  8119. "loc": "3771:38-47"
  8120. },
  8121. {
  8122. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8123. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8124. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8125. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8126. "type": "harmony import specifier",
  8127. "userRequest": "./constants",
  8128. "loc": "3774:17-26"
  8129. },
  8130. {
  8131. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8132. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8133. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8134. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8135. "type": "harmony import specifier",
  8136. "userRequest": "./constants",
  8137. "loc": "3777:17-26"
  8138. },
  8139. {
  8140. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8141. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8142. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8143. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8144. "type": "harmony import specifier",
  8145. "userRequest": "./constants",
  8146. "loc": "3780:17-26"
  8147. },
  8148. {
  8149. "moduleId": "../../.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  8150. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\Textures\\internalTexture.js",
  8151. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  8152. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  8153. "type": "harmony side effect evaluation",
  8154. "userRequest": "../../Engines/constants",
  8155. "loc": "3:0-52"
  8156. },
  8157. {
  8158. "moduleId": "../../.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  8159. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\Textures\\internalTexture.js",
  8160. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  8161. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  8162. "type": "harmony import specifier",
  8163. "userRequest": "../../Engines/constants",
  8164. "loc": "276:61-70"
  8165. },
  8166. {
  8167. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  8168. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  8169. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  8170. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  8171. "type": "harmony side effect evaluation",
  8172. "userRequest": "../Engines/constants",
  8173. "loc": "2:0-49"
  8174. },
  8175. {
  8176. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  8177. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  8178. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  8179. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  8180. "type": "harmony import specifier",
  8181. "userRequest": "../Engines/constants",
  8182. "loc": "580:50-59"
  8183. },
  8184. {
  8185. "moduleId": "../../.temp/packageES6Dev/core/States/stencilState.js",
  8186. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\States\\stencilState.js",
  8187. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/States/stencilState.js",
  8188. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/States/stencilState.js",
  8189. "type": "harmony side effect evaluation",
  8190. "userRequest": "../Engines/constants",
  8191. "loc": "1:0-49"
  8192. },
  8193. {
  8194. "moduleId": "../../.temp/packageES6Dev/core/States/stencilState.js",
  8195. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\States\\stencilState.js",
  8196. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/States/stencilState.js",
  8197. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/States/stencilState.js",
  8198. "type": "harmony import specifier",
  8199. "userRequest": "../Engines/constants",
  8200. "loc": "177:26-35"
  8201. },
  8202. {
  8203. "moduleId": "../../.temp/packageES6Dev/core/States/stencilState.js",
  8204. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\States\\stencilState.js",
  8205. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/States/stencilState.js",
  8206. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/States/stencilState.js",
  8207. "type": "harmony import specifier",
  8208. "userRequest": "../Engines/constants",
  8209. "loc": "179:24-33"
  8210. },
  8211. {
  8212. "moduleId": "../../.temp/packageES6Dev/core/States/stencilState.js",
  8213. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\States\\stencilState.js",
  8214. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/States/stencilState.js",
  8215. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/States/stencilState.js",
  8216. "type": "harmony import specifier",
  8217. "userRequest": "../Engines/constants",
  8218. "loc": "181:27-36"
  8219. }
  8220. ],
  8221. "providedExports": [
  8222. "Constants"
  8223. ],
  8224. "optimizationBailout": [],
  8225. "depth": 2,
  8226. "source": "/** Defines the cross module used constants to avoid circular dependncies */\r\nvar Constants = /** @class */ (function () {\r\n function Constants() {\r\n }\r\n /** Defines that alpha blending is disabled */\r\n Constants.ALPHA_DISABLE = 0;\r\n /** Defines that alpha blending to SRC ALPHA * SRC + DEST */\r\n Constants.ALPHA_ADD = 1;\r\n /** Defines that alpha blending to SRC ALPHA * SRC + (1 - SRC ALPHA) * DEST */\r\n Constants.ALPHA_COMBINE = 2;\r\n /** Defines that alpha blending to DEST - SRC * DEST */\r\n Constants.ALPHA_SUBTRACT = 3;\r\n /** Defines that alpha blending to SRC * DEST */\r\n Constants.ALPHA_MULTIPLY = 4;\r\n /** Defines that alpha blending to SRC ALPHA * SRC + (1 - SRC) * DEST */\r\n Constants.ALPHA_MAXIMIZED = 5;\r\n /** Defines that alpha blending to SRC + DEST */\r\n Constants.ALPHA_ONEONE = 6;\r\n /** Defines that alpha blending to SRC + (1 - SRC ALPHA) * DEST */\r\n Constants.ALPHA_PREMULTIPLIED = 7;\r\n /**\r\n * Defines that alpha blending to SRC + (1 - SRC ALPHA) * DEST\r\n * Alpha will be set to (1 - SRC ALPHA) * DEST ALPHA\r\n */\r\n Constants.ALPHA_PREMULTIPLIED_PORTERDUFF = 8;\r\n /** Defines that alpha blending to CST * SRC + (1 - CST) * DEST */\r\n Constants.ALPHA_INTERPOLATE = 9;\r\n /**\r\n * Defines that alpha blending to SRC + (1 - SRC) * DEST\r\n * Alpha will be set to SRC ALPHA + (1 - SRC ALPHA) * DEST ALPHA\r\n */\r\n Constants.ALPHA_SCREENMODE = 10;\r\n /**\r\n * Defines that alpha blending to SRC + DST\r\n * Alpha will be set to SRC ALPHA + DST ALPHA\r\n */\r\n Constants.ALPHA_ONEONE_ONEONE = 11;\r\n /**\r\n * Defines that alpha blending to SRC * DST ALPHA + DST\r\n * Alpha will be set to 0\r\n */\r\n Constants.ALPHA_ALPHATOCOLOR = 12;\r\n /**\r\n * Defines that alpha blending to SRC * (1 - DST) + DST * (1 - SRC)\r\n */\r\n Constants.ALPHA_REVERSEONEMINUS = 13;\r\n /**\r\n * Defines that alpha blending to SRC + DST * (1 - SRC ALPHA)\r\n * Alpha will be set to SRC ALPHA + DST ALPHA * (1 - SRC ALPHA)\r\n */\r\n Constants.ALPHA_SRC_DSTONEMINUSSRCALPHA = 14;\r\n /**\r\n * Defines that alpha blending to SRC + DST\r\n * Alpha will be set to SRC ALPHA\r\n */\r\n Constants.ALPHA_ONEONE_ONEZERO = 15;\r\n /** Defines that alpha blending equation a SUM */\r\n Constants.ALPHA_EQUATION_ADD = 0;\r\n /** Defines that alpha blending equation a SUBSTRACTION */\r\n Constants.ALPHA_EQUATION_SUBSTRACT = 1;\r\n /** Defines that alpha blending equation a REVERSE SUBSTRACTION */\r\n Constants.ALPHA_EQUATION_REVERSE_SUBTRACT = 2;\r\n /** Defines that alpha blending equation a MAX operation */\r\n Constants.ALPHA_EQUATION_MAX = 3;\r\n /** Defines that alpha blending equation a MIN operation */\r\n Constants.ALPHA_EQUATION_MIN = 4;\r\n /**\r\n * Defines that alpha blending equation a DARKEN operation:\r\n * It takes the min of the src and sums the alpha channels.\r\n */\r\n Constants.ALPHA_EQUATION_DARKEN = 5;\r\n /** Defines that the ressource is not delayed*/\r\n Constants.DELAYLOADSTATE_NONE = 0;\r\n /** Defines that the ressource was successfully delay loaded */\r\n Constants.DELAYLOADSTATE_LOADED = 1;\r\n /** Defines that the ressource is currently delay loading */\r\n Constants.DELAYLOADSTATE_LOADING = 2;\r\n /** Defines that the ressource is delayed and has not started loading */\r\n Constants.DELAYLOADSTATE_NOTLOADED = 4;\r\n // Depht or Stencil test Constants.\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will never pass. i.e. Nothing will be drawn */\r\n Constants.NEVER = 0x0200;\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will always pass. i.e. Pixels will be drawn in the order they are drawn */\r\n Constants.ALWAYS = 0x0207;\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is less than the stored value */\r\n Constants.LESS = 0x0201;\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is equals to the stored value */\r\n Constants.EQUAL = 0x0202;\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is less than or equal to the stored value */\r\n Constants.LEQUAL = 0x0203;\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is greater than the stored value */\r\n Constants.GREATER = 0x0204;\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is greater than or equal to the stored value */\r\n Constants.GEQUAL = 0x0206;\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is not equal to the stored value */\r\n Constants.NOTEQUAL = 0x0205;\r\n // Stencil Actions Constants.\r\n /** Passed to stencilOperation to specify that stencil value must be kept */\r\n Constants.KEEP = 0x1E00;\r\n /** Passed to stencilOperation to specify that stencil value must be replaced */\r\n Constants.REPLACE = 0x1E01;\r\n /** Passed to stencilOperation to specify that stencil value must be incremented */\r\n Constants.INCR = 0x1E02;\r\n /** Passed to stencilOperation to specify that stencil value must be decremented */\r\n Constants.DECR = 0x1E03;\r\n /** Passed to stencilOperation to specify that stencil value must be inverted */\r\n Constants.INVERT = 0x150A;\r\n /** Passed to stencilOperation to specify that stencil value must be incremented with wrapping */\r\n Constants.INCR_WRAP = 0x8507;\r\n /** Passed to stencilOperation to specify that stencil value must be decremented with wrapping */\r\n Constants.DECR_WRAP = 0x8508;\r\n /** Texture is not repeating outside of 0..1 UVs */\r\n Constants.TEXTURE_CLAMP_ADDRESSMODE = 0;\r\n /** Texture is repeating outside of 0..1 UVs */\r\n Constants.TEXTURE_WRAP_ADDRESSMODE = 1;\r\n /** Texture is repeating and mirrored */\r\n Constants.TEXTURE_MIRROR_ADDRESSMODE = 2;\r\n /** ALPHA */\r\n Constants.TEXTUREFORMAT_ALPHA = 0;\r\n /** LUMINANCE */\r\n Constants.TEXTUREFORMAT_LUMINANCE = 1;\r\n /** LUMINANCE_ALPHA */\r\n Constants.TEXTUREFORMAT_LUMINANCE_ALPHA = 2;\r\n /** RGB */\r\n Constants.TEXTUREFORMAT_RGB = 4;\r\n /** RGBA */\r\n Constants.TEXTUREFORMAT_RGBA = 5;\r\n /** RED */\r\n Constants.TEXTUREFORMAT_RED = 6;\r\n /** RED (2nd reference) */\r\n Constants.TEXTUREFORMAT_R = 6;\r\n /** RG */\r\n Constants.TEXTUREFORMAT_RG = 7;\r\n /** RED_INTEGER */\r\n Constants.TEXTUREFORMAT_RED_INTEGER = 8;\r\n /** RED_INTEGER (2nd reference) */\r\n Constants.TEXTUREFORMAT_R_INTEGER = 8;\r\n /** RG_INTEGER */\r\n Constants.TEXTUREFORMAT_RG_INTEGER = 9;\r\n /** RGB_INTEGER */\r\n Constants.TEXTUREFORMAT_RGB_INTEGER = 10;\r\n /** RGBA_INTEGER */\r\n Constants.TEXTUREFORMAT_RGBA_INTEGER = 11;\r\n /** UNSIGNED_BYTE */\r\n Constants.TEXTURETYPE_UNSIGNED_BYTE = 0;\r\n /** UNSIGNED_BYTE (2nd reference) */\r\n Constants.TEXTURETYPE_UNSIGNED_INT = 0;\r\n /** FLOAT */\r\n Constants.TEXTURETYPE_FLOAT = 1;\r\n /** HALF_FLOAT */\r\n Constants.TEXTURETYPE_HALF_FLOAT = 2;\r\n /** BYTE */\r\n Constants.TEXTURETYPE_BYTE = 3;\r\n /** SHORT */\r\n Constants.TEXTURETYPE_SHORT = 4;\r\n /** UNSIGNED_SHORT */\r\n Constants.TEXTURETYPE_UNSIGNED_SHORT = 5;\r\n /** INT */\r\n Constants.TEXTURETYPE_INT = 6;\r\n /** UNSIGNED_INT */\r\n Constants.TEXTURETYPE_UNSIGNED_INTEGER = 7;\r\n /** UNSIGNED_SHORT_4_4_4_4 */\r\n Constants.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4 = 8;\r\n /** UNSIGNED_SHORT_5_5_5_1 */\r\n Constants.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1 = 9;\r\n /** UNSIGNED_SHORT_5_6_5 */\r\n Constants.TEXTURETYPE_UNSIGNED_SHORT_5_6_5 = 10;\r\n /** UNSIGNED_INT_2_10_10_10_REV */\r\n Constants.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV = 11;\r\n /** UNSIGNED_INT_24_8 */\r\n Constants.TEXTURETYPE_UNSIGNED_INT_24_8 = 12;\r\n /** UNSIGNED_INT_10F_11F_11F_REV */\r\n Constants.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV = 13;\r\n /** UNSIGNED_INT_5_9_9_9_REV */\r\n Constants.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV = 14;\r\n /** FLOAT_32_UNSIGNED_INT_24_8_REV */\r\n Constants.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV = 15;\r\n /** nearest is mag = nearest and min = nearest and mip = linear */\r\n Constants.TEXTURE_NEAREST_SAMPLINGMODE = 1;\r\n /** Bilinear is mag = linear and min = linear and mip = nearest */\r\n Constants.TEXTURE_BILINEAR_SAMPLINGMODE = 2;\r\n /** Trilinear is mag = linear and min = linear and mip = linear */\r\n Constants.TEXTURE_TRILINEAR_SAMPLINGMODE = 3;\r\n /** nearest is mag = nearest and min = nearest and mip = linear */\r\n Constants.TEXTURE_NEAREST_NEAREST_MIPLINEAR = 1;\r\n /** Bilinear is mag = linear and min = linear and mip = nearest */\r\n Constants.TEXTURE_LINEAR_LINEAR_MIPNEAREST = 2;\r\n /** Trilinear is mag = linear and min = linear and mip = linear */\r\n Constants.TEXTURE_LINEAR_LINEAR_MIPLINEAR = 3;\r\n /** mag = nearest and min = nearest and mip = nearest */\r\n Constants.TEXTURE_NEAREST_NEAREST_MIPNEAREST = 4;\r\n /** mag = nearest and min = linear and mip = nearest */\r\n Constants.TEXTURE_NEAREST_LINEAR_MIPNEAREST = 5;\r\n /** mag = nearest and min = linear and mip = linear */\r\n Constants.TEXTURE_NEAREST_LINEAR_MIPLINEAR = 6;\r\n /** mag = nearest and min = linear and mip = none */\r\n Constants.TEXTURE_NEAREST_LINEAR = 7;\r\n /** mag = nearest and min = nearest and mip = none */\r\n Constants.TEXTURE_NEAREST_NEAREST = 8;\r\n /** mag = linear and min = nearest and mip = nearest */\r\n Constants.TEXTURE_LINEAR_NEAREST_MIPNEAREST = 9;\r\n /** mag = linear and min = nearest and mip = linear */\r\n Constants.TEXTURE_LINEAR_NEAREST_MIPLINEAR = 10;\r\n /** mag = linear and min = linear and mip = none */\r\n Constants.TEXTURE_LINEAR_LINEAR = 11;\r\n /** mag = linear and min = nearest and mip = none */\r\n Constants.TEXTURE_LINEAR_NEAREST = 12;\r\n /** Explicit coordinates mode */\r\n Constants.TEXTURE_EXPLICIT_MODE = 0;\r\n /** Spherical coordinates mode */\r\n Constants.TEXTURE_SPHERICAL_MODE = 1;\r\n /** Planar coordinates mode */\r\n Constants.TEXTURE_PLANAR_MODE = 2;\r\n /** Cubic coordinates mode */\r\n Constants.TEXTURE_CUBIC_MODE = 3;\r\n /** Projection coordinates mode */\r\n Constants.TEXTURE_PROJECTION_MODE = 4;\r\n /** Skybox coordinates mode */\r\n Constants.TEXTURE_SKYBOX_MODE = 5;\r\n /** Inverse Cubic coordinates mode */\r\n Constants.TEXTURE_INVCUBIC_MODE = 6;\r\n /** Equirectangular coordinates mode */\r\n Constants.TEXTURE_EQUIRECTANGULAR_MODE = 7;\r\n /** Equirectangular Fixed coordinates mode */\r\n Constants.TEXTURE_FIXED_EQUIRECTANGULAR_MODE = 8;\r\n /** Equirectangular Fixed Mirrored coordinates mode */\r\n Constants.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE = 9;\r\n // Texture rescaling mode\r\n /** Defines that texture rescaling will use a floor to find the closer power of 2 size */\r\n Constants.SCALEMODE_FLOOR = 1;\r\n /** Defines that texture rescaling will look for the nearest power of 2 size */\r\n Constants.SCALEMODE_NEAREST = 2;\r\n /** Defines that texture rescaling will use a ceil to find the closer power of 2 size */\r\n Constants.SCALEMODE_CEILING = 3;\r\n /**\r\n * The dirty texture flag value\r\n */\r\n Constants.MATERIAL_TextureDirtyFlag = 1;\r\n /**\r\n * The dirty light flag value\r\n */\r\n Constants.MATERIAL_LightDirtyFlag = 2;\r\n /**\r\n * The dirty fresnel flag value\r\n */\r\n Constants.MATERIAL_FresnelDirtyFlag = 4;\r\n /**\r\n * The dirty attribute flag value\r\n */\r\n Constants.MATERIAL_AttributesDirtyFlag = 8;\r\n /**\r\n * The dirty misc flag value\r\n */\r\n Constants.MATERIAL_MiscDirtyFlag = 16;\r\n /**\r\n * The all dirty flag value\r\n */\r\n Constants.MATERIAL_AllDirtyFlag = 31;\r\n /**\r\n * Returns the triangle fill mode\r\n */\r\n Constants.MATERIAL_TriangleFillMode = 0;\r\n /**\r\n * Returns the wireframe mode\r\n */\r\n Constants.MATERIAL_WireFrameFillMode = 1;\r\n /**\r\n * Returns the point fill mode\r\n */\r\n Constants.MATERIAL_PointFillMode = 2;\r\n /**\r\n * Returns the point list draw mode\r\n */\r\n Constants.MATERIAL_PointListDrawMode = 3;\r\n /**\r\n * Returns the line list draw mode\r\n */\r\n Constants.MATERIAL_LineListDrawMode = 4;\r\n /**\r\n * Returns the line loop draw mode\r\n */\r\n Constants.MATERIAL_LineLoopDrawMode = 5;\r\n /**\r\n * Returns the line strip draw mode\r\n */\r\n Constants.MATERIAL_LineStripDrawMode = 6;\r\n /**\r\n * Returns the triangle strip draw mode\r\n */\r\n Constants.MATERIAL_TriangleStripDrawMode = 7;\r\n /**\r\n * Returns the triangle fan draw mode\r\n */\r\n Constants.MATERIAL_TriangleFanDrawMode = 8;\r\n /**\r\n * Stores the clock-wise side orientation\r\n */\r\n Constants.MATERIAL_ClockWiseSideOrientation = 0;\r\n /**\r\n * Stores the counter clock-wise side orientation\r\n */\r\n Constants.MATERIAL_CounterClockWiseSideOrientation = 1;\r\n /**\r\n * Nothing\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_NothingTrigger = 0;\r\n /**\r\n * On pick\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnPickTrigger = 1;\r\n /**\r\n * On left pick\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnLeftPickTrigger = 2;\r\n /**\r\n * On right pick\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnRightPickTrigger = 3;\r\n /**\r\n * On center pick\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnCenterPickTrigger = 4;\r\n /**\r\n * On pick down\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnPickDownTrigger = 5;\r\n /**\r\n * On double pick\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnDoublePickTrigger = 6;\r\n /**\r\n * On pick up\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnPickUpTrigger = 7;\r\n /**\r\n * On pick out.\r\n * This trigger will only be raised if you also declared a OnPickDown\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnPickOutTrigger = 16;\r\n /**\r\n * On long press\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnLongPressTrigger = 8;\r\n /**\r\n * On pointer over\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnPointerOverTrigger = 9;\r\n /**\r\n * On pointer out\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnPointerOutTrigger = 10;\r\n /**\r\n * On every frame\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnEveryFrameTrigger = 11;\r\n /**\r\n * On intersection enter\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnIntersectionEnterTrigger = 12;\r\n /**\r\n * On intersection exit\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnIntersectionExitTrigger = 13;\r\n /**\r\n * On key down\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnKeyDownTrigger = 14;\r\n /**\r\n * On key up\r\n * @see http://doc.babylonjs.com/how_to/how_to_use_actions#triggers\r\n */\r\n Constants.ACTION_OnKeyUpTrigger = 15;\r\n /**\r\n * Billboard mode will only apply to Y axis\r\n */\r\n Constants.PARTICLES_BILLBOARDMODE_Y = 2;\r\n /**\r\n * Billboard mode will apply to all axes\r\n */\r\n Constants.PARTICLES_BILLBOARDMODE_ALL = 7;\r\n /**\r\n * Special billboard mode where the particle will be biilboard to the camera but rotated to align with direction\r\n */\r\n Constants.PARTICLES_BILLBOARDMODE_STRETCHED = 8;\r\n /**\r\n * Gets or sets base Assets URL\r\n */\r\n Constants.PARTICLES_BaseAssetsUrl = \"https://assets.babylonjs.com/particles\";\r\n /** Default culling strategy : this is an exclusion test and it's the more accurate.\r\n * Test order :\r\n * Is the bounding sphere outside the frustum ?\r\n * If not, are the bounding box vertices outside the frustum ?\r\n * It not, then the cullable object is in the frustum.\r\n */\r\n Constants.MESHES_CULLINGSTRATEGY_STANDARD = 0;\r\n /** Culling strategy : Bounding Sphere Only.\r\n * This is an exclusion test. It's faster than the standard strategy because the bounding box is not tested.\r\n * It's also less accurate than the standard because some not visible objects can still be selected.\r\n * Test : is the bounding sphere outside the frustum ?\r\n * If not, then the cullable object is in the frustum.\r\n */\r\n Constants.MESHES_CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY = 1;\r\n /** Culling strategy : Optimistic Inclusion.\r\n * This in an inclusion test first, then the standard exclusion test.\r\n * This can be faster when a cullable object is expected to be almost always in the camera frustum.\r\n * This could also be a little slower than the standard test when the tested object center is not the frustum but one of its bounding box vertex is still inside.\r\n * Anyway, it's as accurate as the standard strategy.\r\n * Test :\r\n * Is the cullable object bounding sphere center in the frustum ?\r\n * If not, apply the default culling strategy.\r\n */\r\n Constants.MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION = 2;\r\n /** Culling strategy : Optimistic Inclusion then Bounding Sphere Only.\r\n * This in an inclusion test first, then the bounding sphere only exclusion test.\r\n * This can be the fastest test when a cullable object is expected to be almost always in the camera frustum.\r\n * This could also be a little slower than the BoundingSphereOnly strategy when the tested object center is not in the frustum but its bounding sphere still intersects it.\r\n * It's less accurate than the standard strategy and as accurate as the BoundingSphereOnly strategy.\r\n * Test :\r\n * Is the cullable object bounding sphere center in the frustum ?\r\n * If not, apply the Bounding Sphere Only strategy. No Bounding Box is tested here.\r\n */\r\n Constants.MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION_THEN_BSPHERE_ONLY = 3;\r\n /**\r\n * No logging while loading\r\n */\r\n Constants.SCENELOADER_NO_LOGGING = 0;\r\n /**\r\n * Minimal logging while loading\r\n */\r\n Constants.SCENELOADER_MINIMAL_LOGGING = 1;\r\n /**\r\n * Summary logging while loading\r\n */\r\n Constants.SCENELOADER_SUMMARY_LOGGING = 2;\r\n /**\r\n * Detailled logging while loading\r\n */\r\n Constants.SCENELOADER_DETAILED_LOGGING = 3;\r\n return Constants;\r\n}());\r\nexport { Constants };\r\n//# sourceMappingURL=constants.js.map"
  8227. },
  8228. {
  8229. "id": "../../.temp/packageES6Dev/core/Engines/engineCapabilities.js",
  8230. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\engineCapabilities.js",
  8231. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/engineCapabilities.js",
  8232. "index": 26,
  8233. "index2": 24,
  8234. "size": 407,
  8235. "cacheable": true,
  8236. "built": true,
  8237. "optional": false,
  8238. "prefetched": false,
  8239. "chunks": [
  8240. "thinEngineOnly"
  8241. ],
  8242. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8243. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8244. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8245. "issuerPath": [
  8246. {
  8247. "id": "./thinEngineOnly.ts",
  8248. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  8249. "name": "./thinEngineOnly.ts",
  8250. "profile": {
  8251. "factory": 42,
  8252. "building": 2115
  8253. }
  8254. },
  8255. {
  8256. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8257. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8258. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8259. "profile": {
  8260. "factory": 6,
  8261. "building": 110
  8262. }
  8263. }
  8264. ],
  8265. "profile": {
  8266. "factory": 59,
  8267. "building": 41,
  8268. "dependencies": 4
  8269. },
  8270. "failed": false,
  8271. "errors": 0,
  8272. "warnings": 0,
  8273. "assets": [],
  8274. "reasons": [
  8275. {
  8276. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8277. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8278. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8279. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8280. "type": "harmony side effect evaluation",
  8281. "userRequest": "./engineCapabilities",
  8282. "loc": "5:0-58"
  8283. },
  8284. {
  8285. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8286. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8287. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8288. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8289. "type": "harmony import specifier",
  8290. "userRequest": "./engineCapabilities",
  8291. "loc": "515:25-43"
  8292. }
  8293. ],
  8294. "providedExports": [
  8295. "EngineCapabilities"
  8296. ],
  8297. "optimizationBailout": [],
  8298. "depth": 2,
  8299. "source": "/**\r\n * Class used to describe the capabilities of the engine relatively to the current browser\r\n */\r\nvar EngineCapabilities = /** @class */ (function () {\r\n function EngineCapabilities() {\r\n /** Max number of texture samples for MSAA */\r\n this.maxMSAASamples = 1;\r\n }\r\n return EngineCapabilities;\r\n}());\r\nexport { EngineCapabilities };\r\n//# sourceMappingURL=engineCapabilities.js.map"
  8300. },
  8301. {
  8302. "id": "../../.temp/packageES6Dev/core/Engines/engineStore.js",
  8303. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\engineStore.js",
  8304. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/engineStore.js",
  8305. "index": 3,
  8306. "index2": 1,
  8307. "size": 1486,
  8308. "cacheable": true,
  8309. "built": true,
  8310. "optional": false,
  8311. "prefetched": false,
  8312. "chunks": [
  8313. "thinEngineOnly"
  8314. ],
  8315. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8316. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8317. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8318. "issuerPath": [
  8319. {
  8320. "id": "./thinEngineOnly.ts",
  8321. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  8322. "name": "./thinEngineOnly.ts",
  8323. "profile": {
  8324. "factory": 42,
  8325. "building": 2115
  8326. }
  8327. },
  8328. {
  8329. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8330. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8331. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8332. "profile": {
  8333. "factory": 6,
  8334. "building": 110
  8335. }
  8336. }
  8337. ],
  8338. "profile": {
  8339. "factory": 59,
  8340. "building": 41,
  8341. "dependencies": 4
  8342. },
  8343. "failed": false,
  8344. "errors": 0,
  8345. "warnings": 0,
  8346. "assets": [],
  8347. "reasons": [
  8348. {
  8349. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8350. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8351. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8352. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8353. "type": "harmony side effect evaluation",
  8354. "userRequest": "./engineStore",
  8355. "loc": "2:0-44"
  8356. },
  8357. {
  8358. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8359. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8360. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8361. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8362. "type": "harmony import specifier",
  8363. "userRequest": "./engineStore",
  8364. "loc": "2451:20-31"
  8365. },
  8366. {
  8367. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8368. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8369. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8370. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8371. "type": "harmony import specifier",
  8372. "userRequest": "./engineStore",
  8373. "loc": "2452:40-51"
  8374. }
  8375. ],
  8376. "providedExports": [
  8377. "EngineStore"
  8378. ],
  8379. "optimizationBailout": [],
  8380. "depth": 2,
  8381. "source": "/**\r\n * The engine store class is responsible to hold all the instances of Engine and Scene created\r\n * during the life time of the application.\r\n */\r\nvar EngineStore = /** @class */ (function () {\r\n function EngineStore() {\r\n }\r\n Object.defineProperty(EngineStore, \"LastCreatedEngine\", {\r\n /**\r\n * Gets the latest created engine\r\n */\r\n get: function () {\r\n if (this.Instances.length === 0) {\r\n return null;\r\n }\r\n return this.Instances[this.Instances.length - 1];\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(EngineStore, \"LastCreatedScene\", {\r\n /**\r\n * Gets the latest created scene\r\n */\r\n get: function () {\r\n return this._LastCreatedScene;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /** Gets the list of created engines */\r\n EngineStore.Instances = new Array();\r\n /** @hidden */\r\n EngineStore._LastCreatedScene = null;\r\n /**\r\n * Gets or sets a global variable indicating if fallback texture must be used when a texture cannot be loaded\r\n * @ignorenaming\r\n */\r\n EngineStore.UseFallbackTexture = true;\r\n /**\r\n * Texture content used if a texture cannot loaded\r\n * @ignorenaming\r\n */\r\n EngineStore.FallbackTexture = \"\";\r\n return EngineStore;\r\n}());\r\nexport { EngineStore };\r\n//# sourceMappingURL=engineStore.js.map"
  8382. },
  8383. {
  8384. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8385. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8386. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8387. "index": 1,
  8388. "index2": 36,
  8389. "size": 177973,
  8390. "cacheable": true,
  8391. "built": true,
  8392. "optional": false,
  8393. "prefetched": false,
  8394. "chunks": [
  8395. "thinEngineOnly"
  8396. ],
  8397. "issuer": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  8398. "issuerId": "./thinEngineOnly.ts",
  8399. "issuerName": "./thinEngineOnly.ts",
  8400. "issuerPath": [
  8401. {
  8402. "id": "./thinEngineOnly.ts",
  8403. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  8404. "name": "./thinEngineOnly.ts",
  8405. "profile": {
  8406. "factory": 42,
  8407. "building": 2115
  8408. }
  8409. }
  8410. ],
  8411. "profile": {
  8412. "factory": 6,
  8413. "building": 110
  8414. },
  8415. "failed": false,
  8416. "errors": 0,
  8417. "warnings": 0,
  8418. "assets": [],
  8419. "reasons": [
  8420. {
  8421. "moduleId": "./thinEngineOnly.ts",
  8422. "moduleIdentifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  8423. "module": "./thinEngineOnly.ts",
  8424. "moduleName": "./thinEngineOnly.ts",
  8425. "type": "harmony side effect evaluation",
  8426. "userRequest": "@babylonjs/core/Engines/thinEngine",
  8427. "loc": "1:0-64"
  8428. },
  8429. {
  8430. "moduleId": "./thinEngineOnly.ts",
  8431. "moduleIdentifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  8432. "module": "./thinEngineOnly.ts",
  8433. "moduleName": "./thinEngineOnly.ts",
  8434. "type": "harmony import specifier",
  8435. "userRequest": "@babylonjs/core/Engines/thinEngine",
  8436. "loc": "3:4-14"
  8437. }
  8438. ],
  8439. "providedExports": [
  8440. "ThinEngine"
  8441. ],
  8442. "optimizationBailout": [],
  8443. "depth": 1,
  8444. "source": "import * as tslib_1 from \"tslib\";\r\nimport { EngineStore } from './engineStore';\r\nimport { Effect } from '../Materials/effect';\r\nimport { _DevTools } from '../Misc/devTools';\r\nimport { EngineCapabilities } from './engineCapabilities';\r\nimport { PerfCounter } from '../Misc/perfCounter';\r\nimport { Observable } from '../Misc/observable';\r\nimport { DepthCullingState } from '../States/depthCullingState';\r\nimport { StencilState } from '../States/stencilState';\r\nimport { AlphaState } from '../States/alphaCullingState';\r\nimport { Constants } from './constants';\r\nimport { InternalTexture } from '../Materials/Textures/internalTexture';\r\nimport { Logger } from '../Misc/logger';\r\nimport { DomManagement } from '../Misc/domManagement';\r\nimport { WebGL2ShaderProcessor } from './WebGL/webGL2ShaderProcessors';\r\nimport { WebGLDataBuffer } from '../Meshes/WebGL/webGLDataBuffer';\r\nimport { WebGLPipelineContext } from './WebGL/webGLPipelineContext';\r\nimport { FileTools } from '../Misc/fileTools';\r\n/**\r\n * Keeps track of all the buffer info used in engine.\r\n */\r\nvar BufferPointer = /** @class */ (function () {\r\n function BufferPointer() {\r\n }\r\n return BufferPointer;\r\n}());\r\n/**\r\n * The base engine class (root of all engines)\r\n */\r\nvar ThinEngine = /** @class */ (function () {\r\n /**\r\n * Creates a new engine\r\n * @param canvasOrContext defines the canvas or WebGL context to use for rendering. If you provide a WebGL context, Babylon.js will not hook events on the canvas (like pointers, keyboards, etc...) so no event observables will be available. This is mostly used when Babylon.js is used as a plugin on a system which alreay used the WebGL context\r\n * @param antialias defines enable antialiasing (default: false)\r\n * @param options defines further options to be sent to the getContext() function\r\n * @param adaptToDeviceRatio defines whether to adapt to the device's viewport characteristics (default: false)\r\n */\r\n function ThinEngine(canvasOrContext, antialias, options, adaptToDeviceRatio) {\r\n var _this = this;\r\n if (adaptToDeviceRatio === void 0) { adaptToDeviceRatio = false; }\r\n /**\r\n * Gets or sets a boolean that indicates if textures must be forced to power of 2 size even if not required\r\n */\r\n this.forcePOTTextures = false;\r\n /**\r\n * Gets a boolean indicating if the engine is currently rendering in fullscreen mode\r\n */\r\n this.isFullscreen = false;\r\n /**\r\n * Gets a boolean indicating if the pointer is currently locked\r\n */\r\n this.isPointerLock = false;\r\n /**\r\n * Gets or sets a boolean indicating if back faces must be culled (true by default)\r\n */\r\n this.cullBackFaces = true;\r\n /**\r\n * Gets or sets a boolean indicating if the engine must keep rendering even if the window is not in foregroun\r\n */\r\n this.renderEvenInBackground = true;\r\n /**\r\n * Gets or sets a boolean indicating that cache can be kept between frames\r\n */\r\n this.preventCacheWipeBetweenFrames = false;\r\n /** Gets or sets a boolean indicating if the engine should validate programs after compilation */\r\n this.validateShaderPrograms = false;\r\n // Uniform buffers list\r\n /**\r\n * Gets or sets a boolean indicating that uniform buffers must be disabled even if they are supported\r\n */\r\n this.disableUniformBuffers = false;\r\n /** @hidden */\r\n this._uniformBuffers = new Array();\r\n this._windowIsBackground = false;\r\n this._webGLVersion = 1.0;\r\n this._highPrecisionShadersAllowed = true;\r\n /** @hidden */\r\n this._badOS = false;\r\n /** @hidden */\r\n this._badDesktopOS = false;\r\n this._colorWrite = true;\r\n /** @hidden */\r\n this._drawCalls = new PerfCounter();\r\n this._renderingQueueLaunched = false;\r\n this._activeRenderLoops = new Array();\r\n // Lost context\r\n /**\r\n * Observable signaled when a context lost event is raised\r\n */\r\n this.onContextLostObservable = new Observable();\r\n /**\r\n * Observable signaled when a context restored event is raised\r\n */\r\n this.onContextRestoredObservable = new Observable();\r\n this._contextWasLost = false;\r\n /** @hidden */\r\n this._doNotHandleContextLost = false;\r\n /**\r\n * Gets or sets a boolean indicating that vertex array object must be disabled even if they are supported\r\n */\r\n this.disableVertexArrayObjects = false;\r\n // States\r\n /** @hidden */\r\n this._depthCullingState = new DepthCullingState();\r\n /** @hidden */\r\n this._stencilState = new StencilState();\r\n /** @hidden */\r\n this._alphaState = new AlphaState();\r\n // Cache\r\n /** @hidden */\r\n this._internalTexturesCache = new Array();\r\n /** @hidden */\r\n this._activeChannel = 0;\r\n this._currentTextureChannel = -1;\r\n /** @hidden */\r\n this._boundTexturesCache = {};\r\n this._compiledEffects = {};\r\n this._vertexAttribArraysEnabled = [];\r\n this._uintIndicesCurrentlySet = false;\r\n this._currentBoundBuffer = new Array();\r\n /** @hidden */\r\n this._currentFramebuffer = null;\r\n this._currentBufferPointers = new Array();\r\n this._currentInstanceLocations = new Array();\r\n this._currentInstanceBuffers = new Array();\r\n this._vaoRecordInProgress = false;\r\n this._mustWipeVertexAttributes = false;\r\n this._nextFreeTextureSlots = new Array();\r\n this._maxSimultaneousTextures = 0;\r\n this._activeRequests = new Array();\r\n // Hardware supported Compressed Textures\r\n this._texturesSupported = new Array();\r\n /**\r\n * Defines whether the engine has been created with the premultipliedAlpha option on or not.\r\n */\r\n this.premultipliedAlpha = true;\r\n this._viewportCached = { x: 0, y: 0, z: 0, w: 0 };\r\n this._unpackFlipYCached = null;\r\n /**\r\n * In case you are sharing the context with other applications, it might\r\n * be interested to not cache the unpack flip y state to ensure a consistent\r\n * value would be set.\r\n */\r\n this.enableUnpackFlipYCached = true;\r\n this._boundUniforms = {};\r\n var canvas = null;\r\n if (!canvasOrContext) {\r\n return;\r\n }\r\n options = options || {};\r\n if (canvasOrContext.getContext) {\r\n canvas = canvasOrContext;\r\n this._renderingCanvas = canvas;\r\n if (antialias != null) {\r\n options.antialias = antialias;\r\n }\r\n if (options.deterministicLockstep === undefined) {\r\n options.deterministicLockstep = false;\r\n }\r\n if (options.lockstepMaxSteps === undefined) {\r\n options.lockstepMaxSteps = 4;\r\n }\r\n if (options.preserveDrawingBuffer === undefined) {\r\n options.preserveDrawingBuffer = false;\r\n }\r\n if (options.audioEngine === undefined) {\r\n options.audioEngine = true;\r\n }\r\n if (options.stencil === undefined) {\r\n options.stencil = true;\r\n }\r\n if (options.premultipliedAlpha === false) {\r\n this.premultipliedAlpha = false;\r\n }\r\n this._doNotHandleContextLost = options.doNotHandleContextLost ? true : false;\r\n // Exceptions\r\n if (navigator && navigator.userAgent) {\r\n var ua = navigator.userAgent;\r\n for (var _i = 0, _a = ThinEngine.ExceptionList; _i < _a.length; _i++) {\r\n var exception = _a[_i];\r\n var key = exception.key;\r\n var targets = exception.targets;\r\n var check = new RegExp(key);\r\n if (check.test(ua)) {\r\n if (exception.capture && exception.captureConstraint) {\r\n var capture = exception.capture;\r\n var constraint = exception.captureConstraint;\r\n var regex = new RegExp(capture);\r\n var matches = regex.exec(ua);\r\n if (matches && matches.length > 0) {\r\n var capturedValue = parseInt(matches[matches.length - 1]);\r\n if (capturedValue >= constraint) {\r\n continue;\r\n }\r\n }\r\n }\r\n for (var _b = 0, targets_1 = targets; _b < targets_1.length; _b++) {\r\n var target = targets_1[_b];\r\n switch (target) {\r\n case \"uniformBuffer\":\r\n this.disableUniformBuffers = true;\r\n break;\r\n case \"vao\":\r\n this.disableVertexArrayObjects = true;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // Context lost\r\n if (!this._doNotHandleContextLost) {\r\n this._onContextLost = function (evt) {\r\n evt.preventDefault();\r\n _this._contextWasLost = true;\r\n Logger.Warn(\"WebGL context lost.\");\r\n _this.onContextLostObservable.notifyObservers(_this);\r\n };\r\n this._onContextRestored = function () {\r\n // Adding a timeout to avoid race condition at browser level\r\n setTimeout(function () {\r\n // Rebuild gl context\r\n _this._initGLContext();\r\n // Rebuild effects\r\n _this._rebuildEffects();\r\n // Rebuild textures\r\n _this._rebuildInternalTextures();\r\n // Rebuild buffers\r\n _this._rebuildBuffers();\r\n // Cache\r\n _this.wipeCaches(true);\r\n Logger.Warn(\"WebGL context successfully restored.\");\r\n _this.onContextRestoredObservable.notifyObservers(_this);\r\n _this._contextWasLost = false;\r\n }, 0);\r\n };\r\n canvas.addEventListener(\"webglcontextlost\", this._onContextLost, false);\r\n canvas.addEventListener(\"webglcontextrestored\", this._onContextRestored, false);\r\n options.powerPreference = \"high-performance\";\r\n }\r\n // GL\r\n if (!options.disableWebGL2Support) {\r\n try {\r\n this._gl = (canvas.getContext(\"webgl2\", options) || canvas.getContext(\"experimental-webgl2\", options));\r\n if (this._gl) {\r\n this._webGLVersion = 2.0;\r\n // Prevent weird browsers to lie :-)\r\n if (!this._gl.deleteQuery) {\r\n this._webGLVersion = 1.0;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // Do nothing\r\n }\r\n }\r\n if (!this._gl) {\r\n if (!canvas) {\r\n throw new Error(\"The provided canvas is null or undefined.\");\r\n }\r\n try {\r\n this._gl = (canvas.getContext(\"webgl\", options) || canvas.getContext(\"experimental-webgl\", options));\r\n }\r\n catch (e) {\r\n throw new Error(\"WebGL not supported\");\r\n }\r\n }\r\n if (!this._gl) {\r\n throw new Error(\"WebGL not supported\");\r\n }\r\n // Ensures a consistent color space unpacking of textures cross browser.\r\n this._gl.pixelStorei(this._gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, this._gl.NONE);\r\n }\r\n else {\r\n this._gl = canvasOrContext;\r\n this._renderingCanvas = this._gl.canvas;\r\n if (this._gl.renderbufferStorageMultisample) {\r\n this._webGLVersion = 2.0;\r\n }\r\n var attributes = this._gl.getContextAttributes();\r\n if (attributes) {\r\n options.stencil = attributes.stencil;\r\n }\r\n }\r\n if (options.useHighPrecisionFloats !== undefined) {\r\n this._highPrecisionShadersAllowed = options.useHighPrecisionFloats;\r\n }\r\n // Viewport\r\n var devicePixelRatio = DomManagement.IsWindowObjectExist() ? (window.devicePixelRatio || 1.0) : 1.0;\r\n var limitDeviceRatio = options.limitDeviceRatio || devicePixelRatio;\r\n this._hardwareScalingLevel = adaptToDeviceRatio ? 1.0 / Math.min(limitDeviceRatio, devicePixelRatio) : 1.0;\r\n this.resize();\r\n this._isStencilEnable = options.stencil ? true : false;\r\n this._initGLContext();\r\n // Prepare buffer pointers\r\n for (var i = 0; i < this._caps.maxVertexAttribs; i++) {\r\n this._currentBufferPointers[i] = new BufferPointer();\r\n }\r\n // Shader processor\r\n if (this.webGLVersion > 1) {\r\n this._shaderProcessor = new WebGL2ShaderProcessor();\r\n }\r\n // Detect if we are running on a faulty buggy OS.\r\n this._badOS = /iPad/i.test(navigator.userAgent) || /iPhone/i.test(navigator.userAgent);\r\n // Detect if we are running on a faulty buggy desktop OS.\r\n this._badDesktopOS = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\r\n console.log(\"Babylon.js v\" + ThinEngine.Version + \" - \" + this.description);\r\n }\r\n Object.defineProperty(ThinEngine, \"NpmPackage\", {\r\n /**\r\n * Returns the current npm package of the sdk\r\n */\r\n // Not mixed with Version for tooling purpose.\r\n get: function () {\r\n return \"babylonjs@4.1.0-alpha.20\";\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine, \"Version\", {\r\n /**\r\n * Returns the current version of the framework\r\n */\r\n get: function () {\r\n return \"4.1.0-alpha.20\";\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine.prototype, \"description\", {\r\n /**\r\n * Returns a string describing the current engine\r\n */\r\n get: function () {\r\n var description = \"WebGL\" + this.webGLVersion;\r\n if (this._caps.parallelShaderCompile) {\r\n description += \" - Parallel shader compilation\";\r\n }\r\n return description;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine, \"ShadersRepository\", {\r\n /**\r\n * Gets or sets the relative url used to load shaders if using the engine in non-minified mode\r\n */\r\n get: function () {\r\n return Effect.ShadersRepository;\r\n },\r\n set: function (value) {\r\n Effect.ShadersRepository = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine.prototype, \"supportsUniformBuffers\", {\r\n /**\r\n * Gets a boolean indicating that the engine supports uniform buffers\r\n * @see http://doc.babylonjs.com/features/webgl2#uniform-buffer-objets\r\n */\r\n get: function () {\r\n return this.webGLVersion > 1 && !this.disableUniformBuffers;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine.prototype, \"_shouldUseHighPrecisionShader\", {\r\n /** @hidden */\r\n get: function () {\r\n return this._caps.highPrecisionShaderSupported && this._highPrecisionShadersAllowed;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine.prototype, \"needPOTTextures\", {\r\n /**\r\n * Gets a boolean indicating that only power of 2 textures are supported\r\n * Please note that you can still use non power of 2 textures but in this case the engine will forcefully convert them\r\n */\r\n get: function () {\r\n return this._webGLVersion < 2 || this.forcePOTTextures;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine.prototype, \"doNotHandleContextLost\", {\r\n /**\r\n * Gets or sets a boolean indicating if resources should be retained to be able to handle context lost events\r\n * @see http://doc.babylonjs.com/how_to/optimizing_your_scene#handling-webgl-context-lost\r\n */\r\n get: function () {\r\n return this._doNotHandleContextLost;\r\n },\r\n set: function (value) {\r\n this._doNotHandleContextLost = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine.prototype, \"_supportsHardwareTextureRescaling\", {\r\n get: function () {\r\n return false;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine.prototype, \"texturesSupported\", {\r\n /**\r\n * Gets the list of texture formats supported\r\n */\r\n get: function () {\r\n return this._texturesSupported;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine.prototype, \"textureFormatInUse\", {\r\n /**\r\n * Gets the list of texture formats in use\r\n */\r\n get: function () {\r\n return this._textureFormatInUse;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine.prototype, \"currentViewport\", {\r\n /**\r\n * Gets the current viewport\r\n */\r\n get: function () {\r\n return this._cachedViewport;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine.prototype, \"emptyTexture\", {\r\n /**\r\n * Gets the default empty texture\r\n */\r\n get: function () {\r\n if (!this._emptyTexture) {\r\n this._emptyTexture = this.createRawTexture(new Uint8Array(4), 1, 1, Constants.TEXTUREFORMAT_RGBA, false, false, Constants.TEXTURE_NEAREST_SAMPLINGMODE);\r\n }\r\n return this._emptyTexture;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine.prototype, \"emptyTexture3D\", {\r\n /**\r\n * Gets the default empty 3D texture\r\n */\r\n get: function () {\r\n if (!this._emptyTexture3D) {\r\n this._emptyTexture3D = this.createRawTexture3D(new Uint8Array(4), 1, 1, 1, Constants.TEXTUREFORMAT_RGBA, false, false, Constants.TEXTURE_NEAREST_SAMPLINGMODE);\r\n }\r\n return this._emptyTexture3D;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine.prototype, \"emptyCubeTexture\", {\r\n /**\r\n * Gets the default empty cube texture\r\n */\r\n get: function () {\r\n if (!this._emptyCubeTexture) {\r\n var faceData = new Uint8Array(4);\r\n var cubeData = [faceData, faceData, faceData, faceData, faceData, faceData];\r\n this._emptyCubeTexture = this.createRawCubeTexture(cubeData, 1, Constants.TEXTUREFORMAT_RGBA, Constants.TEXTURETYPE_UNSIGNED_INT, false, false, Constants.TEXTURE_NEAREST_SAMPLINGMODE);\r\n }\r\n return this._emptyCubeTexture;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ThinEngine.prototype._rebuildInternalTextures = function () {\r\n var currentState = this._internalTexturesCache.slice(); // Do a copy because the rebuild will add proxies\r\n for (var _i = 0, currentState_1 = currentState; _i < currentState_1.length; _i++) {\r\n var internalTexture = currentState_1[_i];\r\n internalTexture._rebuild();\r\n }\r\n };\r\n ThinEngine.prototype._rebuildEffects = function () {\r\n for (var key in this._compiledEffects) {\r\n var effect = this._compiledEffects[key];\r\n effect._prepareEffect();\r\n }\r\n Effect.ResetCache();\r\n };\r\n /**\r\n * Gets a boolean indicating if all created effects are ready\r\n * @returns true if all effects are ready\r\n */\r\n ThinEngine.prototype.areAllEffectsReady = function () {\r\n for (var key in this._compiledEffects) {\r\n var effect = this._compiledEffects[key];\r\n if (!effect.isReady()) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n ThinEngine.prototype._rebuildBuffers = function () {\r\n // Uniforms\r\n for (var _i = 0, _a = this._uniformBuffers; _i < _a.length; _i++) {\r\n var uniformBuffer = _a[_i];\r\n uniformBuffer._rebuild();\r\n }\r\n };\r\n ThinEngine.prototype._initGLContext = function () {\r\n // Caps\r\n this._caps = new EngineCapabilities();\r\n this._caps.maxTexturesImageUnits = this._gl.getParameter(this._gl.MAX_TEXTURE_IMAGE_UNITS);\r\n this._caps.maxCombinedTexturesImageUnits = this._gl.getParameter(this._gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS);\r\n this._caps.maxVertexTextureImageUnits = this._gl.getParameter(this._gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS);\r\n this._caps.maxTextureSize = this._gl.getParameter(this._gl.MAX_TEXTURE_SIZE);\r\n this._caps.maxCubemapTextureSize = this._gl.getParameter(this._gl.MAX_CUBE_MAP_TEXTURE_SIZE);\r\n this._caps.maxRenderTextureSize = this._gl.getParameter(this._gl.MAX_RENDERBUFFER_SIZE);\r\n this._caps.maxVertexAttribs = this._gl.getParameter(this._gl.MAX_VERTEX_ATTRIBS);\r\n this._caps.maxVaryingVectors = this._gl.getParameter(this._gl.MAX_VARYING_VECTORS);\r\n this._caps.maxFragmentUniformVectors = this._gl.getParameter(this._gl.MAX_FRAGMENT_UNIFORM_VECTORS);\r\n this._caps.maxVertexUniformVectors = this._gl.getParameter(this._gl.MAX_VERTEX_UNIFORM_VECTORS);\r\n // Infos\r\n this._glVersion = this._gl.getParameter(this._gl.VERSION);\r\n var rendererInfo = this._gl.getExtension(\"WEBGL_debug_renderer_info\");\r\n if (rendererInfo != null) {\r\n this._glRenderer = this._gl.getParameter(rendererInfo.UNMASKED_RENDERER_WEBGL);\r\n this._glVendor = this._gl.getParameter(rendererInfo.UNMASKED_VENDOR_WEBGL);\r\n }\r\n if (!this._glVendor) {\r\n this._glVendor = \"Unknown vendor\";\r\n }\r\n if (!this._glRenderer) {\r\n this._glRenderer = \"Unknown renderer\";\r\n }\r\n // Constants\r\n this._gl.HALF_FLOAT_OES = 0x8D61; // Half floating-point type (16-bit).\r\n if (this._gl.RGBA16F !== 0x881A) {\r\n this._gl.RGBA16F = 0x881A; // RGBA 16-bit floating-point color-renderable internal sized format.\r\n }\r\n if (this._gl.RGBA32F !== 0x8814) {\r\n this._gl.RGBA32F = 0x8814; // RGBA 32-bit floating-point color-renderable internal sized format.\r\n }\r\n if (this._gl.DEPTH24_STENCIL8 !== 35056) {\r\n this._gl.DEPTH24_STENCIL8 = 35056;\r\n }\r\n // Extensions\r\n this._caps.standardDerivatives = this._webGLVersion > 1 || (this._gl.getExtension('OES_standard_derivatives') !== null);\r\n this._caps.astc = this._gl.getExtension('WEBGL_compressed_texture_astc') || this._gl.getExtension('WEBKIT_WEBGL_compressed_texture_astc');\r\n this._caps.s3tc = this._gl.getExtension('WEBGL_compressed_texture_s3tc') || this._gl.getExtension('WEBKIT_WEBGL_compressed_texture_s3tc');\r\n this._caps.pvrtc = this._gl.getExtension('WEBGL_compressed_texture_pvrtc') || this._gl.getExtension('WEBKIT_WEBGL_compressed_texture_pvrtc');\r\n this._caps.etc1 = this._gl.getExtension('WEBGL_compressed_texture_etc1') || this._gl.getExtension('WEBKIT_WEBGL_compressed_texture_etc1');\r\n this._caps.etc2 = this._gl.getExtension('WEBGL_compressed_texture_etc') || this._gl.getExtension('WEBKIT_WEBGL_compressed_texture_etc') ||\r\n this._gl.getExtension('WEBGL_compressed_texture_es3_0'); // also a requirement of OpenGL ES 3\r\n this._caps.textureAnisotropicFilterExtension = this._gl.getExtension('EXT_texture_filter_anisotropic') || this._gl.getExtension('WEBKIT_EXT_texture_filter_anisotropic') || this._gl.getExtension('MOZ_EXT_texture_filter_anisotropic');\r\n this._caps.maxAnisotropy = this._caps.textureAnisotropicFilterExtension ? this._gl.getParameter(this._caps.textureAnisotropicFilterExtension.MAX_TEXTURE_MAX_ANISOTROPY_EXT) : 0;\r\n this._caps.uintIndices = this._webGLVersion > 1 || this._gl.getExtension('OES_element_index_uint') !== null;\r\n this._caps.fragmentDepthSupported = this._webGLVersion > 1 || this._gl.getExtension('EXT_frag_depth') !== null;\r\n this._caps.highPrecisionShaderSupported = false;\r\n this._caps.timerQuery = this._gl.getExtension('EXT_disjoint_timer_query_webgl2') || this._gl.getExtension(\"EXT_disjoint_timer_query\");\r\n if (this._caps.timerQuery) {\r\n if (this._webGLVersion === 1) {\r\n this._gl.getQuery = this._caps.timerQuery.getQueryEXT.bind(this._caps.timerQuery);\r\n }\r\n this._caps.canUseTimestampForTimerQuery = this._gl.getQuery(this._caps.timerQuery.TIMESTAMP_EXT, this._caps.timerQuery.QUERY_COUNTER_BITS_EXT) > 0;\r\n }\r\n // Checks if some of the format renders first to allow the use of webgl inspector.\r\n this._caps.colorBufferFloat = this._webGLVersion > 1 && this._gl.getExtension('EXT_color_buffer_float');\r\n this._caps.textureFloat = (this._webGLVersion > 1 || this._gl.getExtension('OES_texture_float')) ? true : false;\r\n this._caps.textureFloatLinearFiltering = this._caps.textureFloat && this._gl.getExtension('OES_texture_float_linear') ? true : false;\r\n this._caps.textureFloatRender = this._caps.textureFloat && this._canRenderToFloatFramebuffer() ? true : false;\r\n this._caps.textureHalfFloat = (this._webGLVersion > 1 || this._gl.getExtension('OES_texture_half_float')) ? true : false;\r\n this._caps.textureHalfFloatLinearFiltering = (this._webGLVersion > 1 || (this._caps.textureHalfFloat && this._gl.getExtension('OES_texture_half_float_linear'))) ? true : false;\r\n if (this._webGLVersion > 1) {\r\n this._gl.HALF_FLOAT_OES = 0x140B;\r\n }\r\n this._caps.textureHalfFloatRender = this._caps.textureHalfFloat && this._canRenderToHalfFloatFramebuffer();\r\n this._caps.textureLOD = (this._webGLVersion > 1 || this._gl.getExtension('EXT_shader_texture_lod')) ? true : false;\r\n this._caps.multiview = this._gl.getExtension('OVR_multiview2');\r\n // Draw buffers\r\n if (this._webGLVersion > 1) {\r\n this._caps.drawBuffersExtension = true;\r\n this._caps.maxMSAASamples = this._gl.getParameter(this._gl.MAX_SAMPLES);\r\n }\r\n else {\r\n var drawBuffersExtension = this._gl.getExtension('WEBGL_draw_buffers');\r\n if (drawBuffersExtension !== null) {\r\n this._caps.drawBuffersExtension = true;\r\n this._gl.drawBuffers = drawBuffersExtension.drawBuffersWEBGL.bind(drawBuffersExtension);\r\n this._gl.DRAW_FRAMEBUFFER = this._gl.FRAMEBUFFER;\r\n for (var i = 0; i < 16; i++) {\r\n this._gl[\"COLOR_ATTACHMENT\" + i + \"_WEBGL\"] = drawBuffersExtension[\"COLOR_ATTACHMENT\" + i + \"_WEBGL\"];\r\n }\r\n }\r\n else {\r\n this._caps.drawBuffersExtension = false;\r\n }\r\n }\r\n // Shader compiler threads\r\n this._caps.parallelShaderCompile = this._gl.getExtension('KHR_parallel_shader_compile');\r\n // Depth Texture\r\n if (this._webGLVersion > 1) {\r\n this._caps.depthTextureExtension = true;\r\n }\r\n else {\r\n var depthTextureExtension = this._gl.getExtension('WEBGL_depth_texture');\r\n if (depthTextureExtension != null) {\r\n this._caps.depthTextureExtension = true;\r\n this._gl.UNSIGNED_INT_24_8 = depthTextureExtension.UNSIGNED_INT_24_8_WEBGL;\r\n }\r\n }\r\n // Vertex array object\r\n if (this.disableVertexArrayObjects) {\r\n this._caps.vertexArrayObject = false;\r\n }\r\n else if (this._webGLVersion > 1) {\r\n this._caps.vertexArrayObject = true;\r\n }\r\n else {\r\n var vertexArrayObjectExtension = this._gl.getExtension('OES_vertex_array_object');\r\n if (vertexArrayObjectExtension != null) {\r\n this._caps.vertexArrayObject = true;\r\n this._gl.createVertexArray = vertexArrayObjectExtension.createVertexArrayOES.bind(vertexArrayObjectExtension);\r\n this._gl.bindVertexArray = vertexArrayObjectExtension.bindVertexArrayOES.bind(vertexArrayObjectExtension);\r\n this._gl.deleteVertexArray = vertexArrayObjectExtension.deleteVertexArrayOES.bind(vertexArrayObjectExtension);\r\n }\r\n else {\r\n this._caps.vertexArrayObject = false;\r\n }\r\n }\r\n // Instances count\r\n if (this._webGLVersion > 1) {\r\n this._caps.instancedArrays = true;\r\n }\r\n else {\r\n var instanceExtension = this._gl.getExtension('ANGLE_instanced_arrays');\r\n if (instanceExtension != null) {\r\n this._caps.instancedArrays = true;\r\n this._gl.drawArraysInstanced = instanceExtension.drawArraysInstancedANGLE.bind(instanceExtension);\r\n this._gl.drawElementsInstanced = instanceExtension.drawElementsInstancedANGLE.bind(instanceExtension);\r\n this._gl.vertexAttribDivisor = instanceExtension.vertexAttribDivisorANGLE.bind(instanceExtension);\r\n }\r\n else {\r\n this._caps.instancedArrays = false;\r\n }\r\n }\r\n // Intelligently add supported compressed formats in order to check for.\r\n // Check for ASTC support first as it is most powerful and to be very cross platform.\r\n // Next PVRTC & DXT, which are probably superior to ETC1/2.\r\n // Likely no hardware which supports both PVR & DXT, so order matters little.\r\n // ETC2 is newer and handles ETC1 (no alpha capability), so check for first.\r\n if (this._caps.astc) {\r\n this.texturesSupported.push('-astc.ktx');\r\n }\r\n if (this._caps.s3tc) {\r\n this.texturesSupported.push('-dxt.ktx');\r\n }\r\n if (this._caps.pvrtc) {\r\n this.texturesSupported.push('-pvrtc.ktx');\r\n }\r\n if (this._caps.etc2) {\r\n this.texturesSupported.push('-etc2.ktx');\r\n }\r\n if (this._caps.etc1) {\r\n this.texturesSupported.push('-etc1.ktx');\r\n }\r\n if (this._gl.getShaderPrecisionFormat) {\r\n var vertex_highp = this._gl.getShaderPrecisionFormat(this._gl.VERTEX_SHADER, this._gl.HIGH_FLOAT);\r\n var fragment_highp = this._gl.getShaderPrecisionFormat(this._gl.FRAGMENT_SHADER, this._gl.HIGH_FLOAT);\r\n if (vertex_highp && fragment_highp) {\r\n this._caps.highPrecisionShaderSupported = vertex_highp.precision !== 0 && fragment_highp.precision !== 0;\r\n }\r\n }\r\n if (this._webGLVersion > 1) {\r\n this._caps.blendMinMax = true;\r\n }\r\n else {\r\n var blendMinMaxExtension = this._gl.getExtension('EXT_blend_minmax');\r\n if (blendMinMaxExtension != null) {\r\n this._caps.blendMinMax = true;\r\n this._gl.MAX = blendMinMaxExtension.MAX_EXT;\r\n this._gl.MIN = blendMinMaxExtension.MIN_EXT;\r\n }\r\n else {\r\n this._caps.blendMinMax = false;\r\n }\r\n }\r\n // Depth buffer\r\n this._depthCullingState.depthTest = true;\r\n this._depthCullingState.depthFunc = this._gl.LEQUAL;\r\n this._depthCullingState.depthMask = true;\r\n // Texture maps\r\n this._maxSimultaneousTextures = this._caps.maxCombinedTexturesImageUnits;\r\n for (var slot = 0; slot < this._maxSimultaneousTextures; slot++) {\r\n this._nextFreeTextureSlots.push(slot);\r\n }\r\n };\r\n Object.defineProperty(ThinEngine.prototype, \"webGLVersion\", {\r\n /**\r\n * Gets version of the current webGL context\r\n */\r\n get: function () {\r\n return this._webGLVersion;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Gets a string idenfifying the name of the class\r\n * @returns \"Engine\" string\r\n */\r\n ThinEngine.prototype.getClassName = function () {\r\n return \"Engine\";\r\n };\r\n Object.defineProperty(ThinEngine.prototype, \"isStencilEnable\", {\r\n /**\r\n * Returns true if the stencil buffer has been enabled through the creation option of the context.\r\n */\r\n get: function () {\r\n return this._isStencilEnable;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /** @hidden */\r\n ThinEngine.prototype._prepareWorkingCanvas = function () {\r\n if (this._workingCanvas) {\r\n return;\r\n }\r\n this._workingCanvas = document.createElement(\"canvas\");\r\n var context = this._workingCanvas.getContext(\"2d\");\r\n if (context) {\r\n this._workingContext = context;\r\n }\r\n };\r\n /**\r\n * Reset the texture cache to empty state\r\n */\r\n ThinEngine.prototype.resetTextureCache = function () {\r\n for (var key in this._boundTexturesCache) {\r\n if (!this._boundTexturesCache.hasOwnProperty(key)) {\r\n continue;\r\n }\r\n this._boundTexturesCache[key] = null;\r\n }\r\n this._currentTextureChannel = -1;\r\n };\r\n /**\r\n * Gets an object containing information about the current webGL context\r\n * @returns an object containing the vender, the renderer and the version of the current webGL context\r\n */\r\n ThinEngine.prototype.getGlInfo = function () {\r\n return {\r\n vendor: this._glVendor,\r\n renderer: this._glRenderer,\r\n version: this._glVersion\r\n };\r\n };\r\n /**\r\n * Defines the hardware scaling level.\r\n * By default the hardware scaling level is computed from the window device ratio.\r\n * if level = 1 then the engine will render at the exact resolution of the canvas. If level = 0.5 then the engine will render at twice the size of the canvas.\r\n * @param level defines the level to use\r\n */\r\n ThinEngine.prototype.setHardwareScalingLevel = function (level) {\r\n this._hardwareScalingLevel = level;\r\n this.resize();\r\n };\r\n /**\r\n * Gets the current hardware scaling level.\r\n * By default the hardware scaling level is computed from the window device ratio.\r\n * if level = 1 then the engine will render at the exact resolution of the canvas. If level = 0.5 then the engine will render at twice the size of the canvas.\r\n * @returns a number indicating the current hardware scaling level\r\n */\r\n ThinEngine.prototype.getHardwareScalingLevel = function () {\r\n return this._hardwareScalingLevel;\r\n };\r\n /**\r\n * Gets the list of loaded textures\r\n * @returns an array containing all loaded textures\r\n */\r\n ThinEngine.prototype.getLoadedTexturesCache = function () {\r\n return this._internalTexturesCache;\r\n };\r\n /**\r\n * Gets the object containing all engine capabilities\r\n * @returns the EngineCapabilities object\r\n */\r\n ThinEngine.prototype.getCaps = function () {\r\n return this._caps;\r\n };\r\n /**\r\n * stop executing a render loop function and remove it from the execution array\r\n * @param renderFunction defines the function to be removed. If not provided all functions will be removed.\r\n */\r\n ThinEngine.prototype.stopRenderLoop = function (renderFunction) {\r\n if (!renderFunction) {\r\n this._activeRenderLoops = [];\r\n return;\r\n }\r\n var index = this._activeRenderLoops.indexOf(renderFunction);\r\n if (index >= 0) {\r\n this._activeRenderLoops.splice(index, 1);\r\n }\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._renderLoop = function () {\r\n if (!this._contextWasLost) {\r\n var shouldRender = true;\r\n if (!this.renderEvenInBackground && this._windowIsBackground) {\r\n shouldRender = false;\r\n }\r\n if (shouldRender) {\r\n // Start new frame\r\n this.beginFrame();\r\n for (var index = 0; index < this._activeRenderLoops.length; index++) {\r\n var renderFunction = this._activeRenderLoops[index];\r\n renderFunction();\r\n }\r\n // Present\r\n this.endFrame();\r\n }\r\n }\r\n if (this._activeRenderLoops.length > 0) {\r\n this._frameHandler = this._queueNewFrame(this._bindedRenderFunction, this.getHostWindow());\r\n }\r\n else {\r\n this._renderingQueueLaunched = false;\r\n }\r\n };\r\n /**\r\n * Gets the HTML canvas attached with the current webGL context\r\n * @returns a HTML canvas\r\n */\r\n ThinEngine.prototype.getRenderingCanvas = function () {\r\n return this._renderingCanvas;\r\n };\r\n /**\r\n * Gets host window\r\n * @returns the host window object\r\n */\r\n ThinEngine.prototype.getHostWindow = function () {\r\n if (this._renderingCanvas && this._renderingCanvas.ownerDocument && this._renderingCanvas.ownerDocument.defaultView) {\r\n return this._renderingCanvas.ownerDocument.defaultView;\r\n }\r\n return window;\r\n };\r\n /**\r\n * Gets the current render width\r\n * @param useScreen defines if screen size must be used (or the current render target if any)\r\n * @returns a number defining the current render width\r\n */\r\n ThinEngine.prototype.getRenderWidth = function (useScreen) {\r\n if (useScreen === void 0) { useScreen = false; }\r\n if (!useScreen && this._currentRenderTarget) {\r\n return this._currentRenderTarget.width;\r\n }\r\n return this._gl.drawingBufferWidth;\r\n };\r\n /**\r\n * Gets the current render height\r\n * @param useScreen defines if screen size must be used (or the current render target if any)\r\n * @returns a number defining the current render height\r\n */\r\n ThinEngine.prototype.getRenderHeight = function (useScreen) {\r\n if (useScreen === void 0) { useScreen = false; }\r\n if (!useScreen && this._currentRenderTarget) {\r\n return this._currentRenderTarget.height;\r\n }\r\n return this._gl.drawingBufferHeight;\r\n };\r\n /**\r\n * Can be used to override the current requestAnimationFrame requester.\r\n * @hidden\r\n */\r\n ThinEngine.prototype._queueNewFrame = function (bindedRenderFunction, requester) {\r\n return ThinEngine.QueueNewFrame(bindedRenderFunction, requester);\r\n };\r\n /**\r\n * Register and execute a render loop. The engine can have more than one render function\r\n * @param renderFunction defines the function to continuously execute\r\n */\r\n ThinEngine.prototype.runRenderLoop = function (renderFunction) {\r\n if (this._activeRenderLoops.indexOf(renderFunction) !== -1) {\r\n return;\r\n }\r\n this._activeRenderLoops.push(renderFunction);\r\n if (!this._renderingQueueLaunched) {\r\n this._renderingQueueLaunched = true;\r\n this._bindedRenderFunction = this._renderLoop.bind(this);\r\n this._frameHandler = this._queueNewFrame(this._bindedRenderFunction, this.getHostWindow());\r\n }\r\n };\r\n /**\r\n * Clear the current render buffer or the current render target (if any is set up)\r\n * @param color defines the color to use\r\n * @param backBuffer defines if the back buffer must be cleared\r\n * @param depth defines if the depth buffer must be cleared\r\n * @param stencil defines if the stencil buffer must be cleared\r\n */\r\n ThinEngine.prototype.clear = function (color, backBuffer, depth, stencil) {\r\n if (stencil === void 0) { stencil = false; }\r\n this.applyStates();\r\n var mode = 0;\r\n if (backBuffer && color) {\r\n this._gl.clearColor(color.r, color.g, color.b, color.a !== undefined ? color.a : 1.0);\r\n mode |= this._gl.COLOR_BUFFER_BIT;\r\n }\r\n if (depth) {\r\n this._gl.clearDepth(1.0);\r\n mode |= this._gl.DEPTH_BUFFER_BIT;\r\n }\r\n if (stencil) {\r\n this._gl.clearStencil(0);\r\n mode |= this._gl.STENCIL_BUFFER_BIT;\r\n }\r\n this._gl.clear(mode);\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._viewport = function (x, y, width, height) {\r\n if (x !== this._viewportCached.x ||\r\n y !== this._viewportCached.y ||\r\n width !== this._viewportCached.z ||\r\n height !== this._viewportCached.w) {\r\n this._viewportCached.x = x;\r\n this._viewportCached.y = y;\r\n this._viewportCached.z = width;\r\n this._viewportCached.w = height;\r\n this._gl.viewport(x, y, width, height);\r\n }\r\n };\r\n /**\r\n * Set the WebGL's viewport\r\n * @param viewport defines the viewport element to be used\r\n * @param requiredWidth defines the width required for rendering. If not provided the rendering canvas' width is used\r\n * @param requiredHeight defines the height required for rendering. If not provided the rendering canvas' height is used\r\n */\r\n ThinEngine.prototype.setViewport = function (viewport, requiredWidth, requiredHeight) {\r\n var width = requiredWidth || this.getRenderWidth();\r\n var height = requiredHeight || this.getRenderHeight();\r\n var x = viewport.x || 0;\r\n var y = viewport.y || 0;\r\n this._cachedViewport = viewport;\r\n this._viewport(x * width, y * height, width * viewport.width, height * viewport.height);\r\n };\r\n /**\r\n * Begin a new frame\r\n */\r\n ThinEngine.prototype.beginFrame = function () {\r\n };\r\n /**\r\n * Enf the current frame\r\n */\r\n ThinEngine.prototype.endFrame = function () {\r\n // Force a flush in case we are using a bad OS.\r\n if (this._badOS) {\r\n this.flushFramebuffer();\r\n }\r\n };\r\n /**\r\n * Resize the view according to the canvas' size\r\n */\r\n ThinEngine.prototype.resize = function () {\r\n var width = this._renderingCanvas ? this._renderingCanvas.clientWidth : window.innerWidth;\r\n var height = this._renderingCanvas ? this._renderingCanvas.clientHeight : window.innerHeight;\r\n this.setSize(width / this._hardwareScalingLevel, height / this._hardwareScalingLevel);\r\n };\r\n /**\r\n * Force a specific size of the canvas\r\n * @param width defines the new canvas' width\r\n * @param height defines the new canvas' height\r\n */\r\n ThinEngine.prototype.setSize = function (width, height) {\r\n if (!this._renderingCanvas) {\r\n return;\r\n }\r\n width = width | 0;\r\n height = height | 0;\r\n if (this._renderingCanvas.width === width && this._renderingCanvas.height === height) {\r\n return;\r\n }\r\n this._renderingCanvas.width = width;\r\n this._renderingCanvas.height = height;\r\n };\r\n /**\r\n * Binds the frame buffer to the specified texture.\r\n * @param texture The texture to render to or null for the default canvas\r\n * @param faceIndex The face of the texture to render to in case of cube texture\r\n * @param requiredWidth The width of the target to render to\r\n * @param requiredHeight The height of the target to render to\r\n * @param forceFullscreenViewport Forces the viewport to be the entire texture/screen if true\r\n * @param depthStencilTexture The depth stencil texture to use to render\r\n * @param lodLevel defines le lod level to bind to the frame buffer\r\n */\r\n ThinEngine.prototype.bindFramebuffer = function (texture, faceIndex, requiredWidth, requiredHeight, forceFullscreenViewport, depthStencilTexture, lodLevel) {\r\n if (lodLevel === void 0) { lodLevel = 0; }\r\n if (this._currentRenderTarget) {\r\n this.unBindFramebuffer(this._currentRenderTarget);\r\n }\r\n this._currentRenderTarget = texture;\r\n this._bindUnboundFramebuffer(texture._MSAAFramebuffer ? texture._MSAAFramebuffer : texture._framebuffer);\r\n var gl = this._gl;\r\n if (texture.isCube) {\r\n if (faceIndex === undefined) {\r\n faceIndex = 0;\r\n }\r\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex, texture._webGLTexture, lodLevel);\r\n if (depthStencilTexture) {\r\n if (depthStencilTexture._generateStencilBuffer) {\r\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex, depthStencilTexture._webGLTexture, lodLevel);\r\n }\r\n else {\r\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex, depthStencilTexture._webGLTexture, lodLevel);\r\n }\r\n }\r\n }\r\n if (this._cachedViewport && !forceFullscreenViewport) {\r\n this.setViewport(this._cachedViewport, requiredWidth, requiredHeight);\r\n }\r\n else {\r\n if (!requiredWidth) {\r\n requiredWidth = texture.width;\r\n if (lodLevel) {\r\n requiredWidth = requiredWidth / Math.pow(2, lodLevel);\r\n }\r\n }\r\n if (!requiredHeight) {\r\n requiredHeight = texture.height;\r\n if (lodLevel) {\r\n requiredHeight = requiredHeight / Math.pow(2, lodLevel);\r\n }\r\n }\r\n this._viewport(0, 0, requiredWidth, requiredHeight);\r\n }\r\n this.wipeCaches();\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._bindUnboundFramebuffer = function (framebuffer) {\r\n if (this._currentFramebuffer !== framebuffer) {\r\n this._gl.bindFramebuffer(this._gl.FRAMEBUFFER, framebuffer);\r\n this._currentFramebuffer = framebuffer;\r\n }\r\n };\r\n /**\r\n * Unbind the current render target texture from the webGL context\r\n * @param texture defines the render target texture to unbind\r\n * @param disableGenerateMipMaps defines a boolean indicating that mipmaps must not be generated\r\n * @param onBeforeUnbind defines a function which will be called before the effective unbind\r\n */\r\n ThinEngine.prototype.unBindFramebuffer = function (texture, disableGenerateMipMaps, onBeforeUnbind) {\r\n if (disableGenerateMipMaps === void 0) { disableGenerateMipMaps = false; }\r\n this._currentRenderTarget = null;\r\n // If MSAA, we need to bitblt back to main texture\r\n var gl = this._gl;\r\n if (texture._MSAAFramebuffer) {\r\n gl.bindFramebuffer(gl.READ_FRAMEBUFFER, texture._MSAAFramebuffer);\r\n gl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, texture._framebuffer);\r\n gl.blitFramebuffer(0, 0, texture.width, texture.height, 0, 0, texture.width, texture.height, gl.COLOR_BUFFER_BIT, gl.NEAREST);\r\n }\r\n if (texture.generateMipMaps && !disableGenerateMipMaps && !texture.isCube) {\r\n this._bindTextureDirectly(gl.TEXTURE_2D, texture, true);\r\n gl.generateMipmap(gl.TEXTURE_2D);\r\n this._bindTextureDirectly(gl.TEXTURE_2D, null);\r\n }\r\n if (onBeforeUnbind) {\r\n if (texture._MSAAFramebuffer) {\r\n // Bind the correct framebuffer\r\n this._bindUnboundFramebuffer(texture._framebuffer);\r\n }\r\n onBeforeUnbind();\r\n }\r\n this._bindUnboundFramebuffer(null);\r\n };\r\n /**\r\n * Force a webGL flush (ie. a flush of all waiting webGL commands)\r\n */\r\n ThinEngine.prototype.flushFramebuffer = function () {\r\n this._gl.flush();\r\n };\r\n /**\r\n * Unbind the current render target and bind the default framebuffer\r\n */\r\n ThinEngine.prototype.restoreDefaultFramebuffer = function () {\r\n if (this._currentRenderTarget) {\r\n this.unBindFramebuffer(this._currentRenderTarget);\r\n }\r\n else {\r\n this._bindUnboundFramebuffer(null);\r\n }\r\n if (this._cachedViewport) {\r\n this.setViewport(this._cachedViewport);\r\n }\r\n this.wipeCaches();\r\n };\r\n // VBOs\r\n ThinEngine.prototype._resetVertexBufferBinding = function () {\r\n this.bindArrayBuffer(null);\r\n this._cachedVertexBuffers = null;\r\n };\r\n /**\r\n * Creates a vertex buffer\r\n * @param data the data for the vertex buffer\r\n * @returns the new WebGL static buffer\r\n */\r\n ThinEngine.prototype.createVertexBuffer = function (data) {\r\n return this._createVertexBuffer(data, this._gl.STATIC_DRAW);\r\n };\r\n ThinEngine.prototype._createVertexBuffer = function (data, usage) {\r\n var vbo = this._gl.createBuffer();\r\n if (!vbo) {\r\n throw new Error(\"Unable to create vertex buffer\");\r\n }\r\n var dataBuffer = new WebGLDataBuffer(vbo);\r\n this.bindArrayBuffer(dataBuffer);\r\n if (data instanceof Array) {\r\n this._gl.bufferData(this._gl.ARRAY_BUFFER, new Float32Array(data), this._gl.STATIC_DRAW);\r\n }\r\n else {\r\n this._gl.bufferData(this._gl.ARRAY_BUFFER, data, this._gl.STATIC_DRAW);\r\n }\r\n this._resetVertexBufferBinding();\r\n dataBuffer.references = 1;\r\n return dataBuffer;\r\n };\r\n /**\r\n * Creates a dynamic vertex buffer\r\n * @param data the data for the dynamic vertex buffer\r\n * @returns the new WebGL dynamic buffer\r\n */\r\n ThinEngine.prototype.createDynamicVertexBuffer = function (data) {\r\n return this._createVertexBuffer(data, this._gl.DYNAMIC_DRAW);\r\n };\r\n /**\r\n * Update a dynamic index buffer\r\n * @param indexBuffer defines the target index buffer\r\n * @param indices defines the data to update\r\n * @param offset defines the offset in the target index buffer where update should start\r\n */\r\n ThinEngine.prototype.updateDynamicIndexBuffer = function (indexBuffer, indices, offset) {\r\n if (offset === void 0) { offset = 0; }\r\n // Force cache update\r\n this._currentBoundBuffer[this._gl.ELEMENT_ARRAY_BUFFER] = null;\r\n this.bindIndexBuffer(indexBuffer);\r\n var arrayBuffer;\r\n if (indices instanceof Uint16Array || indices instanceof Uint32Array) {\r\n arrayBuffer = indices;\r\n }\r\n else {\r\n arrayBuffer = indexBuffer.is32Bits ? new Uint32Array(indices) : new Uint16Array(indices);\r\n }\r\n this._gl.bufferData(this._gl.ELEMENT_ARRAY_BUFFER, arrayBuffer, this._gl.DYNAMIC_DRAW);\r\n this._resetIndexBufferBinding();\r\n };\r\n /**\r\n * Updates a dynamic vertex buffer.\r\n * @param vertexBuffer the vertex buffer to update\r\n * @param data the data used to update the vertex buffer\r\n * @param byteOffset the byte offset of the data\r\n * @param byteLength the byte length of the data\r\n */\r\n ThinEngine.prototype.updateDynamicVertexBuffer = function (vertexBuffer, data, byteOffset, byteLength) {\r\n this.bindArrayBuffer(vertexBuffer);\r\n if (byteOffset === undefined) {\r\n byteOffset = 0;\r\n }\r\n if (byteLength === undefined) {\r\n if (data instanceof Array) {\r\n this._gl.bufferSubData(this._gl.ARRAY_BUFFER, byteOffset, new Float32Array(data));\r\n }\r\n else {\r\n this._gl.bufferSubData(this._gl.ARRAY_BUFFER, byteOffset, data);\r\n }\r\n }\r\n else {\r\n if (data instanceof Array) {\r\n this._gl.bufferSubData(this._gl.ARRAY_BUFFER, 0, new Float32Array(data).subarray(byteOffset, byteOffset + byteLength));\r\n }\r\n else {\r\n if (data instanceof ArrayBuffer) {\r\n data = new Uint8Array(data, byteOffset, byteLength);\r\n }\r\n else {\r\n data = new Uint8Array(data.buffer, data.byteOffset + byteOffset, byteLength);\r\n }\r\n this._gl.bufferSubData(this._gl.ARRAY_BUFFER, 0, data);\r\n }\r\n }\r\n this._resetVertexBufferBinding();\r\n };\r\n ThinEngine.prototype._resetIndexBufferBinding = function () {\r\n this.bindIndexBuffer(null);\r\n this._cachedIndexBuffer = null;\r\n };\r\n /**\r\n * Creates a new index buffer\r\n * @param indices defines the content of the index buffer\r\n * @param updatable defines if the index buffer must be updatable\r\n * @returns a new webGL buffer\r\n */\r\n ThinEngine.prototype.createIndexBuffer = function (indices, updatable) {\r\n var vbo = this._gl.createBuffer();\r\n var dataBuffer = new WebGLDataBuffer(vbo);\r\n if (!vbo) {\r\n throw new Error(\"Unable to create index buffer\");\r\n }\r\n this.bindIndexBuffer(dataBuffer);\r\n var data = this._normalizeIndexData(indices);\r\n this._gl.bufferData(this._gl.ELEMENT_ARRAY_BUFFER, data, updatable ? this._gl.DYNAMIC_DRAW : this._gl.STATIC_DRAW);\r\n this._resetIndexBufferBinding();\r\n dataBuffer.references = 1;\r\n dataBuffer.is32Bits = (data.BYTES_PER_ELEMENT === 4);\r\n return dataBuffer;\r\n };\r\n ThinEngine.prototype._normalizeIndexData = function (indices) {\r\n if (indices instanceof Uint16Array) {\r\n return indices;\r\n }\r\n // Check 32 bit support\r\n if (this._caps.uintIndices) {\r\n if (indices instanceof Uint32Array) {\r\n return indices;\r\n }\r\n else {\r\n // number[] or Int32Array, check if 32 bit is necessary\r\n for (var index = 0; index < indices.length; index++) {\r\n if (indices[index] >= 65535) {\r\n return new Uint32Array(indices);\r\n }\r\n }\r\n return new Uint16Array(indices);\r\n }\r\n }\r\n // No 32 bit support, force conversion to 16 bit (values greater 16 bit are lost)\r\n return new Uint16Array(indices);\r\n };\r\n /**\r\n * Bind a webGL buffer to the webGL context\r\n * @param buffer defines the buffer to bind\r\n */\r\n ThinEngine.prototype.bindArrayBuffer = function (buffer) {\r\n if (!this._vaoRecordInProgress) {\r\n this._unbindVertexArrayObject();\r\n }\r\n this.bindBuffer(buffer, this._gl.ARRAY_BUFFER);\r\n };\r\n /**\r\n * Bind a specific block at a given index in a specific shader program\r\n * @param pipelineContext defines the pipeline context to use\r\n * @param blockName defines the block name\r\n * @param index defines the index where to bind the block\r\n */\r\n ThinEngine.prototype.bindUniformBlock = function (pipelineContext, blockName, index) {\r\n var program = pipelineContext.program;\r\n var uniformLocation = this._gl.getUniformBlockIndex(program, blockName);\r\n this._gl.uniformBlockBinding(program, uniformLocation, index);\r\n };\r\n ThinEngine.prototype.bindIndexBuffer = function (buffer) {\r\n if (!this._vaoRecordInProgress) {\r\n this._unbindVertexArrayObject();\r\n }\r\n this.bindBuffer(buffer, this._gl.ELEMENT_ARRAY_BUFFER);\r\n };\r\n ThinEngine.prototype.bindBuffer = function (buffer, target) {\r\n if (this._vaoRecordInProgress || this._currentBoundBuffer[target] !== buffer) {\r\n this._gl.bindBuffer(target, buffer ? buffer.underlyingResource : null);\r\n this._currentBoundBuffer[target] = buffer;\r\n }\r\n };\r\n /**\r\n * update the bound buffer with the given data\r\n * @param data defines the data to update\r\n */\r\n ThinEngine.prototype.updateArrayBuffer = function (data) {\r\n this._gl.bufferSubData(this._gl.ARRAY_BUFFER, 0, data);\r\n };\r\n ThinEngine.prototype._vertexAttribPointer = function (buffer, indx, size, type, normalized, stride, offset) {\r\n var pointer = this._currentBufferPointers[indx];\r\n var changed = false;\r\n if (!pointer.active) {\r\n changed = true;\r\n pointer.active = true;\r\n pointer.index = indx;\r\n pointer.size = size;\r\n pointer.type = type;\r\n pointer.normalized = normalized;\r\n pointer.stride = stride;\r\n pointer.offset = offset;\r\n pointer.buffer = buffer;\r\n }\r\n else {\r\n if (pointer.buffer !== buffer) {\r\n pointer.buffer = buffer;\r\n changed = true;\r\n }\r\n if (pointer.size !== size) {\r\n pointer.size = size;\r\n changed = true;\r\n }\r\n if (pointer.type !== type) {\r\n pointer.type = type;\r\n changed = true;\r\n }\r\n if (pointer.normalized !== normalized) {\r\n pointer.normalized = normalized;\r\n changed = true;\r\n }\r\n if (pointer.stride !== stride) {\r\n pointer.stride = stride;\r\n changed = true;\r\n }\r\n if (pointer.offset !== offset) {\r\n pointer.offset = offset;\r\n changed = true;\r\n }\r\n }\r\n if (changed || this._vaoRecordInProgress) {\r\n this.bindArrayBuffer(buffer);\r\n this._gl.vertexAttribPointer(indx, size, type, normalized, stride, offset);\r\n }\r\n };\r\n ThinEngine.prototype._bindIndexBufferWithCache = function (indexBuffer) {\r\n if (indexBuffer == null) {\r\n return;\r\n }\r\n if (this._cachedIndexBuffer !== indexBuffer) {\r\n this._cachedIndexBuffer = indexBuffer;\r\n this.bindIndexBuffer(indexBuffer);\r\n this._uintIndicesCurrentlySet = indexBuffer.is32Bits;\r\n }\r\n };\r\n ThinEngine.prototype._bindVertexBuffersAttributes = function (vertexBuffers, effect) {\r\n var attributes = effect.getAttributesNames();\r\n if (!this._vaoRecordInProgress) {\r\n this._unbindVertexArrayObject();\r\n }\r\n this.unbindAllAttributes();\r\n for (var index = 0; index < attributes.length; index++) {\r\n var order = effect.getAttributeLocation(index);\r\n if (order >= 0) {\r\n var vertexBuffer = vertexBuffers[attributes[index]];\r\n if (!vertexBuffer) {\r\n continue;\r\n }\r\n this._gl.enableVertexAttribArray(order);\r\n if (!this._vaoRecordInProgress) {\r\n this._vertexAttribArraysEnabled[order] = true;\r\n }\r\n var buffer = vertexBuffer.getBuffer();\r\n if (buffer) {\r\n this._vertexAttribPointer(buffer, order, vertexBuffer.getSize(), vertexBuffer.type, vertexBuffer.normalized, vertexBuffer.byteStride, vertexBuffer.byteOffset);\r\n if (vertexBuffer.getIsInstanced()) {\r\n this._gl.vertexAttribDivisor(order, vertexBuffer.getInstanceDivisor());\r\n if (!this._vaoRecordInProgress) {\r\n this._currentInstanceLocations.push(order);\r\n this._currentInstanceBuffers.push(buffer);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Records a vertex array object\r\n * @see http://doc.babylonjs.com/features/webgl2#vertex-array-objects\r\n * @param vertexBuffers defines the list of vertex buffers to store\r\n * @param indexBuffer defines the index buffer to store\r\n * @param effect defines the effect to store\r\n * @returns the new vertex array object\r\n */\r\n ThinEngine.prototype.recordVertexArrayObject = function (vertexBuffers, indexBuffer, effect) {\r\n var vao = this._gl.createVertexArray();\r\n this._vaoRecordInProgress = true;\r\n this._gl.bindVertexArray(vao);\r\n this._mustWipeVertexAttributes = true;\r\n this._bindVertexBuffersAttributes(vertexBuffers, effect);\r\n this.bindIndexBuffer(indexBuffer);\r\n this._vaoRecordInProgress = false;\r\n this._gl.bindVertexArray(null);\r\n return vao;\r\n };\r\n /**\r\n * Bind a specific vertex array object\r\n * @see http://doc.babylonjs.com/features/webgl2#vertex-array-objects\r\n * @param vertexArrayObject defines the vertex array object to bind\r\n * @param indexBuffer defines the index buffer to bind\r\n */\r\n ThinEngine.prototype.bindVertexArrayObject = function (vertexArrayObject, indexBuffer) {\r\n if (this._cachedVertexArrayObject !== vertexArrayObject) {\r\n this._cachedVertexArrayObject = vertexArrayObject;\r\n this._gl.bindVertexArray(vertexArrayObject);\r\n this._cachedVertexBuffers = null;\r\n this._cachedIndexBuffer = null;\r\n this._uintIndicesCurrentlySet = indexBuffer != null && indexBuffer.is32Bits;\r\n this._mustWipeVertexAttributes = true;\r\n }\r\n };\r\n /**\r\n * Bind webGl buffers directly to the webGL context\r\n * @param vertexBuffer defines the vertex buffer to bind\r\n * @param indexBuffer defines the index buffer to bind\r\n * @param vertexDeclaration defines the vertex declaration to use with the vertex buffer\r\n * @param vertexStrideSize defines the vertex stride of the vertex buffer\r\n * @param effect defines the effect associated with the vertex buffer\r\n */\r\n ThinEngine.prototype.bindBuffersDirectly = function (vertexBuffer, indexBuffer, vertexDeclaration, vertexStrideSize, effect) {\r\n if (this._cachedVertexBuffers !== vertexBuffer || this._cachedEffectForVertexBuffers !== effect) {\r\n this._cachedVertexBuffers = vertexBuffer;\r\n this._cachedEffectForVertexBuffers = effect;\r\n var attributesCount = effect.getAttributesCount();\r\n this._unbindVertexArrayObject();\r\n this.unbindAllAttributes();\r\n var offset = 0;\r\n for (var index = 0; index < attributesCount; index++) {\r\n if (index < vertexDeclaration.length) {\r\n var order = effect.getAttributeLocation(index);\r\n if (order >= 0) {\r\n this._gl.enableVertexAttribArray(order);\r\n this._vertexAttribArraysEnabled[order] = true;\r\n this._vertexAttribPointer(vertexBuffer, order, vertexDeclaration[index], this._gl.FLOAT, false, vertexStrideSize, offset);\r\n }\r\n offset += vertexDeclaration[index] * 4;\r\n }\r\n }\r\n }\r\n this._bindIndexBufferWithCache(indexBuffer);\r\n };\r\n ThinEngine.prototype._unbindVertexArrayObject = function () {\r\n if (!this._cachedVertexArrayObject) {\r\n return;\r\n }\r\n this._cachedVertexArrayObject = null;\r\n this._gl.bindVertexArray(null);\r\n };\r\n /**\r\n * Bind a list of vertex buffers to the webGL context\r\n * @param vertexBuffers defines the list of vertex buffers to bind\r\n * @param indexBuffer defines the index buffer to bind\r\n * @param effect defines the effect associated with the vertex buffers\r\n */\r\n ThinEngine.prototype.bindBuffers = function (vertexBuffers, indexBuffer, effect) {\r\n if (this._cachedVertexBuffers !== vertexBuffers || this._cachedEffectForVertexBuffers !== effect) {\r\n this._cachedVertexBuffers = vertexBuffers;\r\n this._cachedEffectForVertexBuffers = effect;\r\n this._bindVertexBuffersAttributes(vertexBuffers, effect);\r\n }\r\n this._bindIndexBufferWithCache(indexBuffer);\r\n };\r\n /**\r\n * Unbind all instance attributes\r\n */\r\n ThinEngine.prototype.unbindInstanceAttributes = function () {\r\n var boundBuffer;\r\n for (var i = 0, ul = this._currentInstanceLocations.length; i < ul; i++) {\r\n var instancesBuffer = this._currentInstanceBuffers[i];\r\n if (boundBuffer != instancesBuffer && instancesBuffer.references) {\r\n boundBuffer = instancesBuffer;\r\n this.bindArrayBuffer(instancesBuffer);\r\n }\r\n var offsetLocation = this._currentInstanceLocations[i];\r\n this._gl.vertexAttribDivisor(offsetLocation, 0);\r\n }\r\n this._currentInstanceBuffers.length = 0;\r\n this._currentInstanceLocations.length = 0;\r\n };\r\n /**\r\n * Release and free the memory of a vertex array object\r\n * @param vao defines the vertex array object to delete\r\n */\r\n ThinEngine.prototype.releaseVertexArrayObject = function (vao) {\r\n this._gl.deleteVertexArray(vao);\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._releaseBuffer = function (buffer) {\r\n buffer.references--;\r\n if (buffer.references === 0) {\r\n this._deleteBuffer(buffer);\r\n return true;\r\n }\r\n return false;\r\n };\r\n ThinEngine.prototype._deleteBuffer = function (buffer) {\r\n this._gl.deleteBuffer(buffer.underlyingResource);\r\n };\r\n /**\r\n * Creates a webGL buffer to use with instanciation\r\n * @param capacity defines the size of the buffer\r\n * @returns the webGL buffer\r\n */\r\n ThinEngine.prototype.createInstancesBuffer = function (capacity) {\r\n var buffer = this._gl.createBuffer();\r\n if (!buffer) {\r\n throw new Error(\"Unable to create instance buffer\");\r\n }\r\n var result = new WebGLDataBuffer(buffer);\r\n result.capacity = capacity;\r\n this.bindArrayBuffer(result);\r\n this._gl.bufferData(this._gl.ARRAY_BUFFER, capacity, this._gl.DYNAMIC_DRAW);\r\n return result;\r\n };\r\n /**\r\n * Delete a webGL buffer used with instanciation\r\n * @param buffer defines the webGL buffer to delete\r\n */\r\n ThinEngine.prototype.deleteInstancesBuffer = function (buffer) {\r\n this._gl.deleteBuffer(buffer);\r\n };\r\n /**\r\n * Update the content of a webGL buffer used with instanciation and bind it to the webGL context\r\n * @param instancesBuffer defines the webGL buffer to update and bind\r\n * @param data defines the data to store in the buffer\r\n * @param offsetLocations defines the offsets or attributes information used to determine where data must be stored in the buffer\r\n */\r\n ThinEngine.prototype.updateAndBindInstancesBuffer = function (instancesBuffer, data, offsetLocations) {\r\n this.bindArrayBuffer(instancesBuffer);\r\n if (data) {\r\n this._gl.bufferSubData(this._gl.ARRAY_BUFFER, 0, data);\r\n }\r\n if (offsetLocations[0].index !== undefined) {\r\n var stride = 0;\r\n for (var i = 0; i < offsetLocations.length; i++) {\r\n var ai = offsetLocations[i];\r\n stride += ai.attributeSize * 4;\r\n }\r\n for (var i = 0; i < offsetLocations.length; i++) {\r\n var ai = offsetLocations[i];\r\n if (!this._vertexAttribArraysEnabled[ai.index]) {\r\n this._gl.enableVertexAttribArray(ai.index);\r\n this._vertexAttribArraysEnabled[ai.index] = true;\r\n }\r\n this._vertexAttribPointer(instancesBuffer, ai.index, ai.attributeSize, ai.attribyteType || this._gl.FLOAT, ai.normalized || false, stride, ai.offset);\r\n this._gl.vertexAttribDivisor(ai.index, 1);\r\n this._currentInstanceLocations.push(ai.index);\r\n this._currentInstanceBuffers.push(instancesBuffer);\r\n }\r\n }\r\n else {\r\n for (var index = 0; index < 4; index++) {\r\n var offsetLocation = offsetLocations[index];\r\n if (!this._vertexAttribArraysEnabled[offsetLocation]) {\r\n this._gl.enableVertexAttribArray(offsetLocation);\r\n this._vertexAttribArraysEnabled[offsetLocation] = true;\r\n }\r\n this._vertexAttribPointer(instancesBuffer, offsetLocation, 4, this._gl.FLOAT, false, 64, index * 16);\r\n this._gl.vertexAttribDivisor(offsetLocation, 1);\r\n this._currentInstanceLocations.push(offsetLocation);\r\n this._currentInstanceBuffers.push(instancesBuffer);\r\n }\r\n }\r\n };\r\n /**\r\n * Apply all cached states (depth, culling, stencil and alpha)\r\n */\r\n ThinEngine.prototype.applyStates = function () {\r\n this._depthCullingState.apply(this._gl);\r\n this._stencilState.apply(this._gl);\r\n this._alphaState.apply(this._gl);\r\n };\r\n /**\r\n * Send a draw order\r\n * @param useTriangles defines if triangles must be used to draw (else wireframe will be used)\r\n * @param indexStart defines the starting index\r\n * @param indexCount defines the number of index to draw\r\n * @param instancesCount defines the number of instances to draw (if instanciation is enabled)\r\n */\r\n ThinEngine.prototype.draw = function (useTriangles, indexStart, indexCount, instancesCount) {\r\n this.drawElementsType(useTriangles ? Constants.MATERIAL_TriangleFillMode : Constants.MATERIAL_WireFrameFillMode, indexStart, indexCount, instancesCount);\r\n };\r\n /**\r\n * Draw a list of points\r\n * @param verticesStart defines the index of first vertex to draw\r\n * @param verticesCount defines the count of vertices to draw\r\n * @param instancesCount defines the number of instances to draw (if instanciation is enabled)\r\n */\r\n ThinEngine.prototype.drawPointClouds = function (verticesStart, verticesCount, instancesCount) {\r\n this.drawArraysType(Constants.MATERIAL_PointFillMode, verticesStart, verticesCount, instancesCount);\r\n };\r\n /**\r\n * Draw a list of unindexed primitives\r\n * @param useTriangles defines if triangles must be used to draw (else wireframe will be used)\r\n * @param verticesStart defines the index of first vertex to draw\r\n * @param verticesCount defines the count of vertices to draw\r\n * @param instancesCount defines the number of instances to draw (if instanciation is enabled)\r\n */\r\n ThinEngine.prototype.drawUnIndexed = function (useTriangles, verticesStart, verticesCount, instancesCount) {\r\n this.drawArraysType(useTriangles ? Constants.MATERIAL_TriangleFillMode : Constants.MATERIAL_WireFrameFillMode, verticesStart, verticesCount, instancesCount);\r\n };\r\n /**\r\n * Draw a list of indexed primitives\r\n * @param fillMode defines the primitive to use\r\n * @param indexStart defines the starting index\r\n * @param indexCount defines the number of index to draw\r\n * @param instancesCount defines the number of instances to draw (if instanciation is enabled)\r\n */\r\n ThinEngine.prototype.drawElementsType = function (fillMode, indexStart, indexCount, instancesCount) {\r\n // Apply states\r\n this.applyStates();\r\n this._drawCalls.addCount(1, false);\r\n // Render\r\n var drawMode = this._drawMode(fillMode);\r\n var indexFormat = this._uintIndicesCurrentlySet ? this._gl.UNSIGNED_INT : this._gl.UNSIGNED_SHORT;\r\n var mult = this._uintIndicesCurrentlySet ? 4 : 2;\r\n if (instancesCount) {\r\n this._gl.drawElementsInstanced(drawMode, indexCount, indexFormat, indexStart * mult, instancesCount);\r\n }\r\n else {\r\n this._gl.drawElements(drawMode, indexCount, indexFormat, indexStart * mult);\r\n }\r\n };\r\n /**\r\n * Draw a list of unindexed primitives\r\n * @param fillMode defines the primitive to use\r\n * @param verticesStart defines the index of first vertex to draw\r\n * @param verticesCount defines the count of vertices to draw\r\n * @param instancesCount defines the number of instances to draw (if instanciation is enabled)\r\n */\r\n ThinEngine.prototype.drawArraysType = function (fillMode, verticesStart, verticesCount, instancesCount) {\r\n // Apply states\r\n this.applyStates();\r\n this._drawCalls.addCount(1, false);\r\n var drawMode = this._drawMode(fillMode);\r\n if (instancesCount) {\r\n this._gl.drawArraysInstanced(drawMode, verticesStart, verticesCount, instancesCount);\r\n }\r\n else {\r\n this._gl.drawArrays(drawMode, verticesStart, verticesCount);\r\n }\r\n };\r\n ThinEngine.prototype._drawMode = function (fillMode) {\r\n switch (fillMode) {\r\n // Triangle views\r\n case Constants.MATERIAL_TriangleFillMode:\r\n return this._gl.TRIANGLES;\r\n case Constants.MATERIAL_PointFillMode:\r\n return this._gl.POINTS;\r\n case Constants.MATERIAL_WireFrameFillMode:\r\n return this._gl.LINES;\r\n // Draw modes\r\n case Constants.MATERIAL_PointListDrawMode:\r\n return this._gl.POINTS;\r\n case Constants.MATERIAL_LineListDrawMode:\r\n return this._gl.LINES;\r\n case Constants.MATERIAL_LineLoopDrawMode:\r\n return this._gl.LINE_LOOP;\r\n case Constants.MATERIAL_LineStripDrawMode:\r\n return this._gl.LINE_STRIP;\r\n case Constants.MATERIAL_TriangleStripDrawMode:\r\n return this._gl.TRIANGLE_STRIP;\r\n case Constants.MATERIAL_TriangleFanDrawMode:\r\n return this._gl.TRIANGLE_FAN;\r\n default:\r\n return this._gl.TRIANGLES;\r\n }\r\n };\r\n // Shaders\r\n /** @hidden */\r\n ThinEngine.prototype._releaseEffect = function (effect) {\r\n if (this._compiledEffects[effect._key]) {\r\n delete this._compiledEffects[effect._key];\r\n this._deletePipelineContext(effect.getPipelineContext());\r\n }\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._deletePipelineContext = function (pipelineContext) {\r\n var webGLPipelineContext = pipelineContext;\r\n if (webGLPipelineContext && webGLPipelineContext.program) {\r\n webGLPipelineContext.program.__SPECTOR_rebuildProgram = null;\r\n this._gl.deleteProgram(webGLPipelineContext.program);\r\n }\r\n };\r\n /**\r\n * Create a new effect (used to store vertex/fragment shaders)\r\n * @param baseName defines the base name of the effect (The name of file without .fragment.fx or .vertex.fx)\r\n * @param attributesNamesOrOptions defines either a list of attribute names or an EffectCreationOptions object\r\n * @param uniformsNamesOrEngine defines either a list of uniform names or the engine to use\r\n * @param samplers defines an array of string used to represent textures\r\n * @param defines defines the string containing the defines to use to compile the shaders\r\n * @param fallbacks defines the list of potential fallbacks to use if shader conmpilation fails\r\n * @param onCompiled defines a function to call when the effect creation is successful\r\n * @param onError defines a function to call when the effect creation has failed\r\n * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)\r\n * @returns the new Effect\r\n */\r\n ThinEngine.prototype.createEffect = function (baseName, attributesNamesOrOptions, uniformsNamesOrEngine, samplers, defines, fallbacks, onCompiled, onError, indexParameters) {\r\n var vertex = baseName.vertexElement || baseName.vertex || baseName;\r\n var fragment = baseName.fragmentElement || baseName.fragment || baseName;\r\n var name = vertex + \"+\" + fragment + \"@\" + (defines ? defines : attributesNamesOrOptions.defines);\r\n if (this._compiledEffects[name]) {\r\n var compiledEffect = this._compiledEffects[name];\r\n if (onCompiled && compiledEffect.isReady()) {\r\n onCompiled(compiledEffect);\r\n }\r\n return compiledEffect;\r\n }\r\n var effect = new Effect(baseName, attributesNamesOrOptions, uniformsNamesOrEngine, samplers, this, defines, fallbacks, onCompiled, onError, indexParameters);\r\n effect._key = name;\r\n this._compiledEffects[name] = effect;\r\n return effect;\r\n };\r\n ThinEngine._ConcatenateShader = function (source, defines, shaderVersion) {\r\n if (shaderVersion === void 0) { shaderVersion = \"\"; }\r\n return shaderVersion + (defines ? defines + \"\\n\" : \"\") + source;\r\n };\r\n ThinEngine.prototype._compileShader = function (source, type, defines, shaderVersion) {\r\n return this._compileRawShader(ThinEngine._ConcatenateShader(source, defines, shaderVersion), type);\r\n };\r\n ThinEngine.prototype._compileRawShader = function (source, type) {\r\n var gl = this._gl;\r\n var shader = gl.createShader(type === \"vertex\" ? gl.VERTEX_SHADER : gl.FRAGMENT_SHADER);\r\n if (!shader) {\r\n throw new Error(\"Something went wrong while compile the shader.\");\r\n }\r\n gl.shaderSource(shader, source);\r\n gl.compileShader(shader);\r\n return shader;\r\n };\r\n /**\r\n * Directly creates a webGL program\r\n * @param pipelineContext defines the pipeline context to attach to\r\n * @param vertexCode defines the vertex shader code to use\r\n * @param fragmentCode defines the fragment shader code to use\r\n * @param context defines the webGL context to use (if not set, the current one will be used)\r\n * @param transformFeedbackVaryings defines the list of transform feedback varyings to use\r\n * @returns the new webGL program\r\n */\r\n ThinEngine.prototype.createRawShaderProgram = function (pipelineContext, vertexCode, fragmentCode, context, transformFeedbackVaryings) {\r\n if (transformFeedbackVaryings === void 0) { transformFeedbackVaryings = null; }\r\n context = context || this._gl;\r\n var vertexShader = this._compileRawShader(vertexCode, \"vertex\");\r\n var fragmentShader = this._compileRawShader(fragmentCode, \"fragment\");\r\n return this._createShaderProgram(pipelineContext, vertexShader, fragmentShader, context, transformFeedbackVaryings);\r\n };\r\n /**\r\n * Creates a webGL program\r\n * @param pipelineContext defines the pipeline context to attach to\r\n * @param vertexCode defines the vertex shader code to use\r\n * @param fragmentCode defines the fragment shader code to use\r\n * @param defines defines the string containing the defines to use to compile the shaders\r\n * @param context defines the webGL context to use (if not set, the current one will be used)\r\n * @param transformFeedbackVaryings defines the list of transform feedback varyings to use\r\n * @returns the new webGL program\r\n */\r\n ThinEngine.prototype.createShaderProgram = function (pipelineContext, vertexCode, fragmentCode, defines, context, transformFeedbackVaryings) {\r\n if (transformFeedbackVaryings === void 0) { transformFeedbackVaryings = null; }\r\n context = context || this._gl;\r\n var shaderVersion = (this._webGLVersion > 1) ? \"#version 300 es\\n#define WEBGL2 \\n\" : \"\";\r\n var vertexShader = this._compileShader(vertexCode, \"vertex\", defines, shaderVersion);\r\n var fragmentShader = this._compileShader(fragmentCode, \"fragment\", defines, shaderVersion);\r\n return this._createShaderProgram(pipelineContext, vertexShader, fragmentShader, context, transformFeedbackVaryings);\r\n };\r\n /**\r\n * Creates a new pipeline context\r\n * @returns the new pipeline\r\n */\r\n ThinEngine.prototype.createPipelineContext = function () {\r\n var pipelineContext = new WebGLPipelineContext();\r\n pipelineContext.engine = this;\r\n if (this._caps.parallelShaderCompile) {\r\n pipelineContext.isParallelCompiled = true;\r\n }\r\n return pipelineContext;\r\n };\r\n ThinEngine.prototype._createShaderProgram = function (pipelineContext, vertexShader, fragmentShader, context, transformFeedbackVaryings) {\r\n if (transformFeedbackVaryings === void 0) { transformFeedbackVaryings = null; }\r\n var shaderProgram = context.createProgram();\r\n pipelineContext.program = shaderProgram;\r\n if (!shaderProgram) {\r\n throw new Error(\"Unable to create program\");\r\n }\r\n context.attachShader(shaderProgram, vertexShader);\r\n context.attachShader(shaderProgram, fragmentShader);\r\n context.linkProgram(shaderProgram);\r\n pipelineContext.context = context;\r\n pipelineContext.vertexShader = vertexShader;\r\n pipelineContext.fragmentShader = fragmentShader;\r\n if (!pipelineContext.isParallelCompiled) {\r\n this._finalizePipelineContext(pipelineContext);\r\n }\r\n return shaderProgram;\r\n };\r\n ThinEngine.prototype._finalizePipelineContext = function (pipelineContext) {\r\n var context = pipelineContext.context;\r\n var vertexShader = pipelineContext.vertexShader;\r\n var fragmentShader = pipelineContext.fragmentShader;\r\n var program = pipelineContext.program;\r\n var linked = context.getProgramParameter(program, context.LINK_STATUS);\r\n if (!linked) { // Get more info\r\n // Vertex\r\n if (!this._gl.getShaderParameter(vertexShader, this._gl.COMPILE_STATUS)) {\r\n var log = this._gl.getShaderInfoLog(vertexShader);\r\n if (log) {\r\n throw new Error(\"VERTEX SHADER \" + log);\r\n }\r\n }\r\n // Fragment\r\n if (!this._gl.getShaderParameter(fragmentShader, this._gl.COMPILE_STATUS)) {\r\n var log = this._gl.getShaderInfoLog(fragmentShader);\r\n if (log) {\r\n throw new Error(\"FRAGMENT SHADER \" + log);\r\n }\r\n }\r\n var error = context.getProgramInfoLog(program);\r\n if (error) {\r\n throw new Error(error);\r\n }\r\n }\r\n if (this.validateShaderPrograms) {\r\n context.validateProgram(program);\r\n var validated = context.getProgramParameter(program, context.VALIDATE_STATUS);\r\n if (!validated) {\r\n var error = context.getProgramInfoLog(program);\r\n if (error) {\r\n throw new Error(error);\r\n }\r\n }\r\n }\r\n context.deleteShader(vertexShader);\r\n context.deleteShader(fragmentShader);\r\n pipelineContext.vertexShader = undefined;\r\n pipelineContext.fragmentShader = undefined;\r\n if (pipelineContext.onCompiled) {\r\n pipelineContext.onCompiled();\r\n pipelineContext.onCompiled = undefined;\r\n }\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._preparePipelineContext = function (pipelineContext, vertexSourceCode, fragmentSourceCode, createAsRaw, rebuildRebind, defines, transformFeedbackVaryings) {\r\n var webGLRenderingState = pipelineContext;\r\n if (createAsRaw) {\r\n webGLRenderingState.program = this.createRawShaderProgram(webGLRenderingState, vertexSourceCode, fragmentSourceCode, undefined, transformFeedbackVaryings);\r\n }\r\n else {\r\n webGLRenderingState.program = this.createShaderProgram(webGLRenderingState, vertexSourceCode, fragmentSourceCode, defines, undefined, transformFeedbackVaryings);\r\n }\r\n webGLRenderingState.program.__SPECTOR_rebuildProgram = rebuildRebind;\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._isRenderingStateCompiled = function (pipelineContext) {\r\n var webGLPipelineContext = pipelineContext;\r\n if (this._gl.getProgramParameter(webGLPipelineContext.program, this._caps.parallelShaderCompile.COMPLETION_STATUS_KHR)) {\r\n this._finalizePipelineContext(webGLPipelineContext);\r\n return true;\r\n }\r\n return false;\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._executeWhenRenderingStateIsCompiled = function (pipelineContext, action) {\r\n var webGLPipelineContext = pipelineContext;\r\n if (!webGLPipelineContext.isParallelCompiled) {\r\n action();\r\n return;\r\n }\r\n webGLPipelineContext.onCompiled = action;\r\n };\r\n /**\r\n * Gets the list of webGL uniform locations associated with a specific program based on a list of uniform names\r\n * @param pipelineContext defines the pipeline context to use\r\n * @param uniformsNames defines the list of uniform names\r\n * @returns an array of webGL uniform locations\r\n */\r\n ThinEngine.prototype.getUniforms = function (pipelineContext, uniformsNames) {\r\n var results = new Array();\r\n var webGLPipelineContext = pipelineContext;\r\n for (var index = 0; index < uniformsNames.length; index++) {\r\n results.push(this._gl.getUniformLocation(webGLPipelineContext.program, uniformsNames[index]));\r\n }\r\n return results;\r\n };\r\n /**\r\n * Gets the lsit of active attributes for a given webGL program\r\n * @param pipelineContext defines the pipeline context to use\r\n * @param attributesNames defines the list of attribute names to get\r\n * @returns an array of indices indicating the offset of each attribute\r\n */\r\n ThinEngine.prototype.getAttributes = function (pipelineContext, attributesNames) {\r\n var results = [];\r\n var webGLPipelineContext = pipelineContext;\r\n for (var index = 0; index < attributesNames.length; index++) {\r\n try {\r\n results.push(this._gl.getAttribLocation(webGLPipelineContext.program, attributesNames[index]));\r\n }\r\n catch (e) {\r\n results.push(-1);\r\n }\r\n }\r\n return results;\r\n };\r\n /**\r\n * Activates an effect, mkaing it the current one (ie. the one used for rendering)\r\n * @param effect defines the effect to activate\r\n */\r\n ThinEngine.prototype.enableEffect = function (effect) {\r\n if (!effect || effect === this._currentEffect) {\r\n return;\r\n }\r\n // Use program\r\n this.bindSamplers(effect);\r\n this._currentEffect = effect;\r\n if (effect.onBind) {\r\n effect.onBind(effect);\r\n }\r\n if (effect._onBindObservable) {\r\n effect._onBindObservable.notifyObservers(effect);\r\n }\r\n };\r\n /**\r\n * Set the value of an uniform to an array of int32\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param array defines the array of int32 to store\r\n */\r\n ThinEngine.prototype.setIntArray = function (uniform, array) {\r\n if (!uniform) {\r\n return;\r\n }\r\n this._gl.uniform1iv(uniform, array);\r\n };\r\n /**\r\n * Set the value of an uniform to an array of int32 (stored as vec2)\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param array defines the array of int32 to store\r\n */\r\n ThinEngine.prototype.setIntArray2 = function (uniform, array) {\r\n if (!uniform || array.length % 2 !== 0) {\r\n return;\r\n }\r\n this._gl.uniform2iv(uniform, array);\r\n };\r\n /**\r\n * Set the value of an uniform to an array of int32 (stored as vec3)\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param array defines the array of int32 to store\r\n */\r\n ThinEngine.prototype.setIntArray3 = function (uniform, array) {\r\n if (!uniform || array.length % 3 !== 0) {\r\n return;\r\n }\r\n this._gl.uniform3iv(uniform, array);\r\n };\r\n /**\r\n * Set the value of an uniform to an array of int32 (stored as vec4)\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param array defines the array of int32 to store\r\n */\r\n ThinEngine.prototype.setIntArray4 = function (uniform, array) {\r\n if (!uniform || array.length % 4 !== 0) {\r\n return;\r\n }\r\n this._gl.uniform4iv(uniform, array);\r\n };\r\n /**\r\n * Set the value of an uniform to an array of float32\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param array defines the array of float32 to store\r\n */\r\n ThinEngine.prototype.setFloatArray = function (uniform, array) {\r\n if (!uniform) {\r\n return;\r\n }\r\n this._gl.uniform1fv(uniform, array);\r\n };\r\n /**\r\n * Set the value of an uniform to an array of float32 (stored as vec2)\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param array defines the array of float32 to store\r\n */\r\n ThinEngine.prototype.setFloatArray2 = function (uniform, array) {\r\n if (!uniform || array.length % 2 !== 0) {\r\n return;\r\n }\r\n this._gl.uniform2fv(uniform, array);\r\n };\r\n /**\r\n * Set the value of an uniform to an array of float32 (stored as vec3)\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param array defines the array of float32 to store\r\n */\r\n ThinEngine.prototype.setFloatArray3 = function (uniform, array) {\r\n if (!uniform || array.length % 3 !== 0) {\r\n return;\r\n }\r\n this._gl.uniform3fv(uniform, array);\r\n };\r\n /**\r\n * Set the value of an uniform to an array of float32 (stored as vec4)\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param array defines the array of float32 to store\r\n */\r\n ThinEngine.prototype.setFloatArray4 = function (uniform, array) {\r\n if (!uniform || array.length % 4 !== 0) {\r\n return;\r\n }\r\n this._gl.uniform4fv(uniform, array);\r\n };\r\n /**\r\n * Set the value of an uniform to an array of number\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param array defines the array of number to store\r\n */\r\n ThinEngine.prototype.setArray = function (uniform, array) {\r\n if (!uniform) {\r\n return;\r\n }\r\n this._gl.uniform1fv(uniform, array);\r\n };\r\n /**\r\n * Set the value of an uniform to an array of number (stored as vec2)\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param array defines the array of number to store\r\n */\r\n ThinEngine.prototype.setArray2 = function (uniform, array) {\r\n if (!uniform || array.length % 2 !== 0) {\r\n return;\r\n }\r\n this._gl.uniform2fv(uniform, array);\r\n };\r\n /**\r\n * Set the value of an uniform to an array of number (stored as vec3)\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param array defines the array of number to store\r\n */\r\n ThinEngine.prototype.setArray3 = function (uniform, array) {\r\n if (!uniform || array.length % 3 !== 0) {\r\n return;\r\n }\r\n this._gl.uniform3fv(uniform, array);\r\n };\r\n /**\r\n * Set the value of an uniform to an array of number (stored as vec4)\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param array defines the array of number to store\r\n */\r\n ThinEngine.prototype.setArray4 = function (uniform, array) {\r\n if (!uniform || array.length % 4 !== 0) {\r\n return;\r\n }\r\n this._gl.uniform4fv(uniform, array);\r\n };\r\n /**\r\n * Set the value of an uniform to an array of float32 (stored as matrices)\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param matrices defines the array of float32 to store\r\n */\r\n ThinEngine.prototype.setMatrices = function (uniform, matrices) {\r\n if (!uniform) {\r\n return;\r\n }\r\n this._gl.uniformMatrix4fv(uniform, false, matrices);\r\n };\r\n /**\r\n * Set the value of an uniform to a matrix (3x3)\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param matrix defines the Float32Array representing the 3x3 matrix to store\r\n */\r\n ThinEngine.prototype.setMatrix3x3 = function (uniform, matrix) {\r\n if (!uniform) {\r\n return;\r\n }\r\n this._gl.uniformMatrix3fv(uniform, false, matrix);\r\n };\r\n /**\r\n * Set the value of an uniform to a matrix (2x2)\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param matrix defines the Float32Array representing the 2x2 matrix to store\r\n */\r\n ThinEngine.prototype.setMatrix2x2 = function (uniform, matrix) {\r\n if (!uniform) {\r\n return;\r\n }\r\n this._gl.uniformMatrix2fv(uniform, false, matrix);\r\n };\r\n /**\r\n * Set the value of an uniform to a number (int)\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param value defines the int number to store\r\n */\r\n ThinEngine.prototype.setInt = function (uniform, value) {\r\n if (!uniform) {\r\n return;\r\n }\r\n this._gl.uniform1i(uniform, value);\r\n };\r\n /**\r\n * Set the value of an uniform to a number (float)\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param value defines the float number to store\r\n */\r\n ThinEngine.prototype.setFloat = function (uniform, value) {\r\n if (!uniform) {\r\n return;\r\n }\r\n this._gl.uniform1f(uniform, value);\r\n };\r\n /**\r\n * Set the value of an uniform to a vec2\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param x defines the 1st component of the value\r\n * @param y defines the 2nd component of the value\r\n */\r\n ThinEngine.prototype.setFloat2 = function (uniform, x, y) {\r\n if (!uniform) {\r\n return;\r\n }\r\n this._gl.uniform2f(uniform, x, y);\r\n };\r\n /**\r\n * Set the value of an uniform to a vec3\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param x defines the 1st component of the value\r\n * @param y defines the 2nd component of the value\r\n * @param z defines the 3rd component of the value\r\n */\r\n ThinEngine.prototype.setFloat3 = function (uniform, x, y, z) {\r\n if (!uniform) {\r\n return;\r\n }\r\n this._gl.uniform3f(uniform, x, y, z);\r\n };\r\n /**\r\n * Set the value of an uniform to a boolean\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param bool defines the boolean to store\r\n */\r\n ThinEngine.prototype.setBool = function (uniform, bool) {\r\n if (!uniform) {\r\n return;\r\n }\r\n this._gl.uniform1i(uniform, bool);\r\n };\r\n /**\r\n * Set the value of an uniform to a vec4\r\n * @param uniform defines the webGL uniform location where to store the value\r\n * @param x defines the 1st component of the value\r\n * @param y defines the 2nd component of the value\r\n * @param z defines the 3rd component of the value\r\n * @param w defines the 4th component of the value\r\n */\r\n ThinEngine.prototype.setFloat4 = function (uniform, x, y, z, w) {\r\n if (!uniform) {\r\n return;\r\n }\r\n this._gl.uniform4f(uniform, x, y, z, w);\r\n };\r\n /**\r\n * Sets a Color4 on a uniform variable\r\n * @param uniform defines the uniform location\r\n * @param color4 defines the value to be set\r\n */\r\n ThinEngine.prototype.setDirectColor4 = function (uniform, color4) {\r\n if (!uniform) {\r\n return;\r\n }\r\n this._gl.uniform4f(uniform, color4.r, color4.g, color4.b, color4.a);\r\n };\r\n Object.defineProperty(ThinEngine.prototype, \"depthCullingState\", {\r\n // States\r\n /**\r\n * Gets the depth culling state manager\r\n */\r\n get: function () {\r\n return this._depthCullingState;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine.prototype, \"alphaState\", {\r\n /**\r\n * Gets the alpha state manager\r\n */\r\n get: function () {\r\n return this._alphaState;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ThinEngine.prototype, \"stencilState\", {\r\n /**\r\n * Gets the stencil state manager\r\n */\r\n get: function () {\r\n return this._stencilState;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n // Textures\r\n /**\r\n * Clears the list of texture accessible through engine.\r\n * This can help preventing texture load conflict due to name collision.\r\n */\r\n ThinEngine.prototype.clearInternalTexturesCache = function () {\r\n this._internalTexturesCache = [];\r\n };\r\n /**\r\n * Force the entire cache to be cleared\r\n * You should not have to use this function unless your engine needs to share the webGL context with another engine\r\n * @param bruteForce defines a boolean to force clearing ALL caches (including stencil, detoh and alpha states)\r\n */\r\n ThinEngine.prototype.wipeCaches = function (bruteForce) {\r\n if (this.preventCacheWipeBetweenFrames && !bruteForce) {\r\n return;\r\n }\r\n this._currentEffect = null;\r\n this._viewportCached.x = 0;\r\n this._viewportCached.y = 0;\r\n this._viewportCached.z = 0;\r\n this._viewportCached.w = 0;\r\n if (bruteForce) {\r\n this.resetTextureCache();\r\n this._currentProgram = null;\r\n this._stencilState.reset();\r\n this._depthCullingState.reset();\r\n this._depthCullingState.depthFunc = this._gl.LEQUAL;\r\n this._alphaState.reset();\r\n this._unpackFlipYCached = null;\r\n }\r\n this._resetVertexBufferBinding();\r\n this._cachedIndexBuffer = null;\r\n this._cachedEffectForVertexBuffers = null;\r\n this._unbindVertexArrayObject();\r\n this.bindIndexBuffer(null);\r\n };\r\n /**\r\n * Set the compressed texture format to use, based on the formats you have, and the formats\r\n * supported by the hardware / browser.\r\n *\r\n * Khronos Texture Container (.ktx) files are used to support this. This format has the\r\n * advantage of being specifically designed for OpenGL. Header elements directly correspond\r\n * to API arguments needed to compressed textures. This puts the burden on the container\r\n * generator to house the arcane code for determining these for current & future formats.\r\n *\r\n * for description see https://www.khronos.org/opengles/sdk/tools/KTX/\r\n * for file layout see https://www.khronos.org/opengles/sdk/tools/KTX/file_format_spec/\r\n *\r\n * Note: The result of this call is not taken into account when a texture is base64.\r\n *\r\n * @param formatsAvailable defines the list of those format families you have created\r\n * on your server. Syntax: '-' + format family + '.ktx'. (Case and order do not matter.)\r\n *\r\n * Current families are astc, dxt, pvrtc, etc2, & etc1.\r\n * @returns The extension selected.\r\n */\r\n ThinEngine.prototype.setTextureFormatToUse = function (formatsAvailable) {\r\n for (var i = 0, len1 = this.texturesSupported.length; i < len1; i++) {\r\n for (var j = 0, len2 = formatsAvailable.length; j < len2; j++) {\r\n if (this._texturesSupported[i] === formatsAvailable[j].toLowerCase()) {\r\n return this._textureFormatInUse = this._texturesSupported[i];\r\n }\r\n }\r\n }\r\n // actively set format to nothing, to allow this to be called more than once\r\n // and possibly fail the 2nd time\r\n this._textureFormatInUse = null;\r\n return null;\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._getSamplingParameters = function (samplingMode, generateMipMaps) {\r\n var gl = this._gl;\r\n var magFilter = gl.NEAREST;\r\n var minFilter = gl.NEAREST;\r\n switch (samplingMode) {\r\n case Constants.TEXTURE_BILINEAR_SAMPLINGMODE:\r\n magFilter = gl.LINEAR;\r\n if (generateMipMaps) {\r\n minFilter = gl.LINEAR_MIPMAP_NEAREST;\r\n }\r\n else {\r\n minFilter = gl.LINEAR;\r\n }\r\n break;\r\n case Constants.TEXTURE_TRILINEAR_SAMPLINGMODE:\r\n magFilter = gl.LINEAR;\r\n if (generateMipMaps) {\r\n minFilter = gl.LINEAR_MIPMAP_LINEAR;\r\n }\r\n else {\r\n minFilter = gl.LINEAR;\r\n }\r\n break;\r\n case Constants.TEXTURE_NEAREST_SAMPLINGMODE:\r\n magFilter = gl.NEAREST;\r\n if (generateMipMaps) {\r\n minFilter = gl.NEAREST_MIPMAP_LINEAR;\r\n }\r\n else {\r\n minFilter = gl.NEAREST;\r\n }\r\n break;\r\n case Constants.TEXTURE_NEAREST_NEAREST_MIPNEAREST:\r\n magFilter = gl.NEAREST;\r\n if (generateMipMaps) {\r\n minFilter = gl.NEAREST_MIPMAP_NEAREST;\r\n }\r\n else {\r\n minFilter = gl.NEAREST;\r\n }\r\n break;\r\n case Constants.TEXTURE_NEAREST_LINEAR_MIPNEAREST:\r\n magFilter = gl.NEAREST;\r\n if (generateMipMaps) {\r\n minFilter = gl.LINEAR_MIPMAP_NEAREST;\r\n }\r\n else {\r\n minFilter = gl.LINEAR;\r\n }\r\n break;\r\n case Constants.TEXTURE_NEAREST_LINEAR_MIPLINEAR:\r\n magFilter = gl.NEAREST;\r\n if (generateMipMaps) {\r\n minFilter = gl.LINEAR_MIPMAP_LINEAR;\r\n }\r\n else {\r\n minFilter = gl.LINEAR;\r\n }\r\n break;\r\n case Constants.TEXTURE_NEAREST_LINEAR:\r\n magFilter = gl.NEAREST;\r\n minFilter = gl.LINEAR;\r\n break;\r\n case Constants.TEXTURE_NEAREST_NEAREST:\r\n magFilter = gl.NEAREST;\r\n minFilter = gl.NEAREST;\r\n break;\r\n case Constants.TEXTURE_LINEAR_NEAREST_MIPNEAREST:\r\n magFilter = gl.LINEAR;\r\n if (generateMipMaps) {\r\n minFilter = gl.NEAREST_MIPMAP_NEAREST;\r\n }\r\n else {\r\n minFilter = gl.NEAREST;\r\n }\r\n break;\r\n case Constants.TEXTURE_LINEAR_NEAREST_MIPLINEAR:\r\n magFilter = gl.LINEAR;\r\n if (generateMipMaps) {\r\n minFilter = gl.NEAREST_MIPMAP_LINEAR;\r\n }\r\n else {\r\n minFilter = gl.NEAREST;\r\n }\r\n break;\r\n case Constants.TEXTURE_LINEAR_LINEAR:\r\n magFilter = gl.LINEAR;\r\n minFilter = gl.LINEAR;\r\n break;\r\n case Constants.TEXTURE_LINEAR_NEAREST:\r\n magFilter = gl.LINEAR;\r\n minFilter = gl.NEAREST;\r\n break;\r\n }\r\n return {\r\n min: minFilter,\r\n mag: magFilter\r\n };\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._createTexture = function () {\r\n var texture = this._gl.createTexture();\r\n if (!texture) {\r\n throw new Error(\"Unable to create texture\");\r\n }\r\n return texture;\r\n };\r\n /**\r\n * Usually called from Texture.ts.\r\n * Passed information to create a WebGLTexture\r\n * @param urlArg defines a value which contains one of the following:\r\n * * A conventional http URL, e.g. 'http://...' or 'file://...'\r\n * * A base64 string of in-line texture data, e.g. 'data:image/jpg;base64,/...'\r\n * * An indicator that data being passed using the buffer parameter, e.g. 'data:mytexture.jpg'\r\n * @param noMipmap defines a boolean indicating that no mipmaps shall be generated. Ignored for compressed textures. They must be in the file\r\n * @param invertY when true, image is flipped when loaded. You probably want true. Certain compressed textures may invert this if their default is inverted (eg. ktx)\r\n * @param scene needed for loading to the correct scene\r\n * @param samplingMode mode with should be used sample / access the texture (Default: Texture.TRILINEAR_SAMPLINGMODE)\r\n * @param onLoad optional callback to be called upon successful completion\r\n * @param onError optional callback to be called upon failure\r\n * @param buffer a source of a file previously fetched as either a base64 string, an ArrayBuffer (compressed or image format), HTMLImageElement (image format), or a Blob\r\n * @param fallback an internal argument in case the function must be called again, due to etc1 not having alpha capabilities\r\n * @param format internal format. Default: RGB when extension is '.jpg' else RGBA. Ignored for compressed textures\r\n * @param forcedExtension defines the extension to use to pick the right loader\r\n * @param excludeLoaders array of texture loaders that should be excluded when picking a loader for the texture (default: empty array)\r\n * @returns a InternalTexture for assignment back into BABYLON.Texture\r\n */\r\n ThinEngine.prototype.createTexture = function (urlArg, noMipmap, invertY, scene, samplingMode, onLoad, onError, buffer, fallback, format, forcedExtension, excludeLoaders) {\r\n var _this = this;\r\n if (samplingMode === void 0) { samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE; }\r\n if (onLoad === void 0) { onLoad = null; }\r\n if (onError === void 0) { onError = null; }\r\n if (buffer === void 0) { buffer = null; }\r\n if (fallback === void 0) { fallback = null; }\r\n if (format === void 0) { format = null; }\r\n if (forcedExtension === void 0) { forcedExtension = null; }\r\n if (excludeLoaders === void 0) { excludeLoaders = []; }\r\n var url = String(urlArg); // assign a new string, so that the original is still available in case of fallback\r\n var fromData = url.substr(0, 5) === \"data:\";\r\n var fromBlob = url.substr(0, 5) === \"blob:\";\r\n var isBase64 = fromData && url.indexOf(\";base64,\") !== -1;\r\n var texture = fallback ? fallback : new InternalTexture(this, InternalTexture.DATASOURCE_URL);\r\n // establish the file extension, if possible\r\n var lastDot = url.lastIndexOf('.');\r\n var extension = forcedExtension ? forcedExtension : (lastDot > -1 ? url.substring(lastDot).toLowerCase() : \"\");\r\n var loader = null;\r\n for (var _i = 0, _a = ThinEngine._TextureLoaders; _i < _a.length; _i++) {\r\n var availableLoader = _a[_i];\r\n if (excludeLoaders.indexOf(availableLoader) === -1 && availableLoader.canLoad(extension, this._textureFormatInUse, fallback, isBase64, buffer ? true : false)) {\r\n loader = availableLoader;\r\n break;\r\n }\r\n }\r\n if (loader) {\r\n url = loader.transformUrl(url, this._textureFormatInUse);\r\n }\r\n if (scene) {\r\n scene._addPendingData(texture);\r\n }\r\n texture.url = url;\r\n texture.generateMipMaps = !noMipmap;\r\n texture.samplingMode = samplingMode;\r\n texture.invertY = invertY;\r\n if (!this._doNotHandleContextLost) {\r\n // Keep a link to the buffer only if we plan to handle context lost\r\n texture._buffer = buffer;\r\n }\r\n var onLoadObserver = null;\r\n if (onLoad && !fallback) {\r\n onLoadObserver = texture.onLoadedObservable.add(onLoad);\r\n }\r\n if (!fallback) {\r\n this._internalTexturesCache.push(texture);\r\n }\r\n var onInternalError = function (message, exception) {\r\n if (scene) {\r\n scene._removePendingData(texture);\r\n }\r\n var customFallback = false;\r\n if (loader) {\r\n var fallbackUrl = loader.getFallbackTextureUrl(url, _this._textureFormatInUse);\r\n if (fallbackUrl) {\r\n // Add Back\r\n customFallback = true;\r\n excludeLoaders.push(loader);\r\n _this.createTexture(urlArg, noMipmap, texture.invertY, scene, samplingMode, null, onError, buffer, texture, undefined, undefined, excludeLoaders);\r\n return;\r\n }\r\n }\r\n if (!customFallback) {\r\n if (onLoadObserver) {\r\n texture.onLoadedObservable.remove(onLoadObserver);\r\n }\r\n if (EngineStore.UseFallbackTexture) {\r\n _this.createTexture(EngineStore.FallbackTexture, noMipmap, texture.invertY, scene, samplingMode, null, onError, buffer, texture);\r\n return;\r\n }\r\n }\r\n if (onError) {\r\n onError(message || \"Unknown error\", exception);\r\n }\r\n };\r\n // processing for non-image formats\r\n if (loader) {\r\n var callback = function (data) {\r\n loader.loadData(data, texture, function (width, height, loadMipmap, isCompressed, done, loadFailed) {\r\n if (loadFailed) {\r\n onInternalError(\"TextureLoader failed to load data\");\r\n }\r\n else {\r\n _this._prepareWebGLTexture(texture, scene, width, height, texture.invertY, !loadMipmap, isCompressed, function () {\r\n done();\r\n return false;\r\n }, samplingMode);\r\n }\r\n });\r\n };\r\n if (!buffer) {\r\n this._loadFile(url, callback, undefined, scene ? scene.offlineProvider : undefined, true, function (request, exception) {\r\n onInternalError(\"Unable to load \" + (request ? request.responseURL : url, exception));\r\n });\r\n }\r\n else {\r\n //callback(buffer as ArrayBuffer);\r\n if (buffer instanceof ArrayBuffer) {\r\n callback(buffer);\r\n }\r\n else {\r\n if (onError) {\r\n onError(\"Unable to load: only ArrayBuffer supported here\", null);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n var onload = function (img) {\r\n if (fromBlob && !_this._doNotHandleContextLost) {\r\n // We need to store the image if we need to rebuild the texture\r\n // in case of a webgl context lost\r\n texture._buffer = img;\r\n }\r\n _this._prepareWebGLTexture(texture, scene, img.width, img.height, texture.invertY, noMipmap, false, function (potWidth, potHeight, continuationCallback) {\r\n var gl = _this._gl;\r\n var isPot = (img.width === potWidth && img.height === potHeight);\r\n var internalFormat = format ? _this._getInternalFormat(format) : ((extension === \".jpg\") ? gl.RGB : gl.RGBA);\r\n if (isPot) {\r\n gl.texImage2D(gl.TEXTURE_2D, 0, internalFormat, internalFormat, gl.UNSIGNED_BYTE, img);\r\n return false;\r\n }\r\n var maxTextureSize = _this._caps.maxTextureSize;\r\n if (img.width > maxTextureSize || img.height > maxTextureSize || !_this._supportsHardwareTextureRescaling) {\r\n _this._prepareWorkingCanvas();\r\n if (!_this._workingCanvas || !_this._workingContext) {\r\n return false;\r\n }\r\n _this._workingCanvas.width = potWidth;\r\n _this._workingCanvas.height = potHeight;\r\n _this._workingContext.drawImage(img, 0, 0, img.width, img.height, 0, 0, potWidth, potHeight);\r\n gl.texImage2D(gl.TEXTURE_2D, 0, internalFormat, internalFormat, gl.UNSIGNED_BYTE, _this._workingCanvas);\r\n texture.width = potWidth;\r\n texture.height = potHeight;\r\n return false;\r\n }\r\n else {\r\n // Using shaders when possible to rescale because canvas.drawImage is lossy\r\n var source_1 = new InternalTexture(_this, InternalTexture.DATASOURCE_TEMP);\r\n _this._bindTextureDirectly(gl.TEXTURE_2D, source_1, true);\r\n gl.texImage2D(gl.TEXTURE_2D, 0, internalFormat, internalFormat, gl.UNSIGNED_BYTE, img);\r\n _this._rescaleTexture(source_1, texture, scene, internalFormat, function () {\r\n _this._releaseTexture(source_1);\r\n _this._bindTextureDirectly(gl.TEXTURE_2D, texture, true);\r\n continuationCallback();\r\n });\r\n }\r\n return true;\r\n }, samplingMode);\r\n };\r\n if (!fromData || isBase64) {\r\n if (buffer instanceof HTMLImageElement) {\r\n onload(buffer);\r\n }\r\n else {\r\n FileTools.LoadImage(url, onload, onInternalError, scene ? scene.offlineProvider : null);\r\n }\r\n }\r\n else if (typeof buffer === \"string\" || buffer instanceof ArrayBuffer || ArrayBuffer.isView(buffer) || buffer instanceof Blob) {\r\n FileTools.LoadImage(buffer, onload, onInternalError, scene ? scene.offlineProvider : null);\r\n }\r\n else {\r\n onload(buffer);\r\n }\r\n }\r\n return texture;\r\n };\r\n /**\r\n * @hidden\r\n */\r\n ThinEngine.prototype._rescaleTexture = function (source, destination, scene, internalFormat, onComplete) {\r\n };\r\n /**\r\n * Creates a raw texture\r\n * @param data defines the data to store in the texture\r\n * @param width defines the width of the texture\r\n * @param height defines the height of the texture\r\n * @param format defines the format of the data\r\n * @param generateMipMaps defines if the engine should generate the mip levels\r\n * @param invertY defines if data must be stored with Y axis inverted\r\n * @param samplingMode defines the required sampling mode (Texture.NEAREST_SAMPLINGMODE by default)\r\n * @param compression defines the compression used (null by default)\r\n * @param type defines the type fo the data (Engine.TEXTURETYPE_UNSIGNED_INT by default)\r\n * @returns the raw texture inside an InternalTexture\r\n */\r\n ThinEngine.prototype.createRawTexture = function (data, width, height, format, generateMipMaps, invertY, samplingMode, compression, type) {\r\n if (compression === void 0) { compression = null; }\r\n if (type === void 0) { type = Constants.TEXTURETYPE_UNSIGNED_INT; }\r\n throw _DevTools.WarnImport(\"Engine.RawTexture\");\r\n };\r\n /**\r\n * Creates a new raw cube texture\r\n * @param data defines the array of data to use to create each face\r\n * @param size defines the size of the textures\r\n * @param format defines the format of the data\r\n * @param type defines the type of the data (like Engine.TEXTURETYPE_UNSIGNED_INT)\r\n * @param generateMipMaps defines if the engine should generate the mip levels\r\n * @param invertY defines if data must be stored with Y axis inverted\r\n * @param samplingMode defines the required sampling mode (like Texture.NEAREST_SAMPLINGMODE)\r\n * @param compression defines the compression used (null by default)\r\n * @returns the cube texture as an InternalTexture\r\n */\r\n ThinEngine.prototype.createRawCubeTexture = function (data, size, format, type, generateMipMaps, invertY, samplingMode, compression) {\r\n if (compression === void 0) { compression = null; }\r\n throw _DevTools.WarnImport(\"Engine.RawTexture\");\r\n };\r\n /**\r\n * Creates a new raw 3D texture\r\n * @param data defines the data used to create the texture\r\n * @param width defines the width of the texture\r\n * @param height defines the height of the texture\r\n * @param depth defines the depth of the texture\r\n * @param format defines the format of the texture\r\n * @param generateMipMaps defines if the engine must generate mip levels\r\n * @param invertY defines if data must be stored with Y axis inverted\r\n * @param samplingMode defines the required sampling mode (like Texture.NEAREST_SAMPLINGMODE)\r\n * @param compression defines the compressed used (can be null)\r\n * @param textureType defines the compressed used (can be null)\r\n * @returns a new raw 3D texture (stored in an InternalTexture)\r\n */\r\n ThinEngine.prototype.createRawTexture3D = function (data, width, height, depth, format, generateMipMaps, invertY, samplingMode, compression, textureType) {\r\n if (compression === void 0) { compression = null; }\r\n if (textureType === void 0) { textureType = Constants.TEXTURETYPE_UNSIGNED_INT; }\r\n throw _DevTools.WarnImport(\"Engine.RawTexture\");\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._unpackFlipY = function (value) {\r\n if (this._unpackFlipYCached !== value) {\r\n this._gl.pixelStorei(this._gl.UNPACK_FLIP_Y_WEBGL, value ? 1 : 0);\r\n if (this.enableUnpackFlipYCached) {\r\n this._unpackFlipYCached = value;\r\n }\r\n }\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._getUnpackAlignement = function () {\r\n return this._gl.getParameter(this._gl.UNPACK_ALIGNMENT);\r\n };\r\n /**\r\n * Update the sampling mode of a given texture\r\n * @param samplingMode defines the required sampling mode\r\n * @param texture defines the texture to update\r\n */\r\n ThinEngine.prototype.updateTextureSamplingMode = function (samplingMode, texture) {\r\n var filters = this._getSamplingParameters(samplingMode, texture.generateMipMaps);\r\n if (texture.isCube) {\r\n this._setTextureParameterInteger(this._gl.TEXTURE_CUBE_MAP, this._gl.TEXTURE_MAG_FILTER, filters.mag, texture);\r\n this._setTextureParameterInteger(this._gl.TEXTURE_CUBE_MAP, this._gl.TEXTURE_MIN_FILTER, filters.min);\r\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null);\r\n }\r\n else if (texture.is3D) {\r\n this._setTextureParameterInteger(this._gl.TEXTURE_3D, this._gl.TEXTURE_MAG_FILTER, filters.mag, texture);\r\n this._setTextureParameterInteger(this._gl.TEXTURE_3D, this._gl.TEXTURE_MIN_FILTER, filters.min);\r\n this._bindTextureDirectly(this._gl.TEXTURE_3D, null);\r\n }\r\n else {\r\n this._setTextureParameterInteger(this._gl.TEXTURE_2D, this._gl.TEXTURE_MAG_FILTER, filters.mag, texture);\r\n this._setTextureParameterInteger(this._gl.TEXTURE_2D, this._gl.TEXTURE_MIN_FILTER, filters.min);\r\n this._bindTextureDirectly(this._gl.TEXTURE_2D, null);\r\n }\r\n texture.samplingMode = samplingMode;\r\n };\r\n /**\r\n * Updates a depth texture Comparison Mode and Function.\r\n * If the comparison Function is equal to 0, the mode will be set to none.\r\n * Otherwise, this only works in webgl 2 and requires a shadow sampler in the shader.\r\n * @param texture The texture to set the comparison function for\r\n * @param comparisonFunction The comparison function to set, 0 if no comparison required\r\n */\r\n ThinEngine.prototype.updateTextureComparisonFunction = function (texture, comparisonFunction) {\r\n if (this.webGLVersion === 1) {\r\n Logger.Error(\"WebGL 1 does not support texture comparison.\");\r\n return;\r\n }\r\n var gl = this._gl;\r\n if (texture.isCube) {\r\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, texture, true);\r\n if (comparisonFunction === 0) {\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_COMPARE_FUNC, Constants.LEQUAL);\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_COMPARE_MODE, gl.NONE);\r\n }\r\n else {\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_COMPARE_FUNC, comparisonFunction);\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_COMPARE_MODE, gl.COMPARE_REF_TO_TEXTURE);\r\n }\r\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null);\r\n }\r\n else {\r\n this._bindTextureDirectly(this._gl.TEXTURE_2D, texture, true);\r\n if (comparisonFunction === 0) {\r\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_COMPARE_FUNC, Constants.LEQUAL);\r\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_COMPARE_MODE, gl.NONE);\r\n }\r\n else {\r\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_COMPARE_FUNC, comparisonFunction);\r\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_COMPARE_MODE, gl.COMPARE_REF_TO_TEXTURE);\r\n }\r\n this._bindTextureDirectly(this._gl.TEXTURE_2D, null);\r\n }\r\n texture._comparisonFunction = comparisonFunction;\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._setupDepthStencilTexture = function (internalTexture, size, generateStencil, bilinearFiltering, comparisonFunction) {\r\n var width = size.width || size;\r\n var height = size.height || size;\r\n internalTexture.baseWidth = width;\r\n internalTexture.baseHeight = height;\r\n internalTexture.width = width;\r\n internalTexture.height = height;\r\n internalTexture.isReady = true;\r\n internalTexture.samples = 1;\r\n internalTexture.generateMipMaps = false;\r\n internalTexture._generateDepthBuffer = true;\r\n internalTexture._generateStencilBuffer = generateStencil;\r\n internalTexture.samplingMode = bilinearFiltering ? Constants.TEXTURE_BILINEAR_SAMPLINGMODE : Constants.TEXTURE_NEAREST_SAMPLINGMODE;\r\n internalTexture.type = Constants.TEXTURETYPE_UNSIGNED_INT;\r\n internalTexture._comparisonFunction = comparisonFunction;\r\n var gl = this._gl;\r\n var target = internalTexture.isCube ? gl.TEXTURE_CUBE_MAP : gl.TEXTURE_2D;\r\n var samplingParameters = this._getSamplingParameters(internalTexture.samplingMode, false);\r\n gl.texParameteri(target, gl.TEXTURE_MAG_FILTER, samplingParameters.mag);\r\n gl.texParameteri(target, gl.TEXTURE_MIN_FILTER, samplingParameters.min);\r\n gl.texParameteri(target, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\r\n gl.texParameteri(target, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\r\n if (comparisonFunction === 0) {\r\n gl.texParameteri(target, gl.TEXTURE_COMPARE_FUNC, Constants.LEQUAL);\r\n gl.texParameteri(target, gl.TEXTURE_COMPARE_MODE, gl.NONE);\r\n }\r\n else {\r\n gl.texParameteri(target, gl.TEXTURE_COMPARE_FUNC, comparisonFunction);\r\n gl.texParameteri(target, gl.TEXTURE_COMPARE_MODE, gl.COMPARE_REF_TO_TEXTURE);\r\n }\r\n };\r\n /**\r\n * Creates a depth stencil texture.\r\n * This is only available in WebGL 2 or with the depth texture extension available.\r\n * @param size The size of face edge in the texture.\r\n * @param options The options defining the texture.\r\n * @returns The texture\r\n */\r\n ThinEngine.prototype.createDepthStencilTexture = function (size, options) {\r\n if (options.isCube) {\r\n var width = size.width || size;\r\n return this._createDepthStencilCubeTexture(width, options);\r\n }\r\n else {\r\n return this._createDepthStencilTexture(size, options);\r\n }\r\n };\r\n /**\r\n * Creates a depth stencil texture.\r\n * This is only available in WebGL 2 or with the depth texture extension available.\r\n * @param size The size of face edge in the texture.\r\n * @param options The options defining the texture.\r\n * @returns The texture\r\n */\r\n ThinEngine.prototype._createDepthStencilTexture = function (size, options) {\r\n var internalTexture = new InternalTexture(this, InternalTexture.DATASOURCE_DEPTHTEXTURE);\r\n if (!this._caps.depthTextureExtension) {\r\n Logger.Error(\"Depth texture is not supported by your browser or hardware.\");\r\n return internalTexture;\r\n }\r\n var internalOptions = tslib_1.__assign({ bilinearFiltering: false, comparisonFunction: 0, generateStencil: false }, options);\r\n var gl = this._gl;\r\n this._bindTextureDirectly(gl.TEXTURE_2D, internalTexture, true);\r\n this._setupDepthStencilTexture(internalTexture, size, internalOptions.generateStencil, internalOptions.bilinearFiltering, internalOptions.comparisonFunction);\r\n if (this.webGLVersion > 1) {\r\n if (internalOptions.generateStencil) {\r\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.DEPTH24_STENCIL8, internalTexture.width, internalTexture.height, 0, gl.DEPTH_STENCIL, gl.UNSIGNED_INT_24_8, null);\r\n }\r\n else {\r\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.DEPTH_COMPONENT24, internalTexture.width, internalTexture.height, 0, gl.DEPTH_COMPONENT, gl.UNSIGNED_INT, null);\r\n }\r\n }\r\n else {\r\n if (internalOptions.generateStencil) {\r\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.DEPTH_STENCIL, internalTexture.width, internalTexture.height, 0, gl.DEPTH_STENCIL, gl.UNSIGNED_INT_24_8, null);\r\n }\r\n else {\r\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.DEPTH_COMPONENT, internalTexture.width, internalTexture.height, 0, gl.DEPTH_COMPONENT, gl.UNSIGNED_INT, null);\r\n }\r\n }\r\n this._bindTextureDirectly(gl.TEXTURE_2D, null);\r\n return internalTexture;\r\n };\r\n /**\r\n * Sets the frame buffer Depth / Stencil attachement of the render target to the defined depth stencil texture.\r\n * @param renderTarget The render target to set the frame buffer for\r\n */\r\n ThinEngine.prototype.setFrameBufferDepthStencilTexture = function (renderTarget) {\r\n // Create the framebuffer\r\n var internalTexture = renderTarget.getInternalTexture();\r\n if (!internalTexture || !internalTexture._framebuffer || !renderTarget.depthStencilTexture) {\r\n return;\r\n }\r\n var gl = this._gl;\r\n var depthStencilTexture = renderTarget.depthStencilTexture;\r\n this._bindUnboundFramebuffer(internalTexture._framebuffer);\r\n if (depthStencilTexture.isCube) {\r\n if (depthStencilTexture._generateStencilBuffer) {\r\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.TEXTURE_CUBE_MAP_POSITIVE_X, depthStencilTexture._webGLTexture, 0);\r\n }\r\n else {\r\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.TEXTURE_CUBE_MAP_POSITIVE_X, depthStencilTexture._webGLTexture, 0);\r\n }\r\n }\r\n else {\r\n if (depthStencilTexture._generateStencilBuffer) {\r\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.TEXTURE_2D, depthStencilTexture._webGLTexture, 0);\r\n }\r\n else {\r\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.TEXTURE_2D, depthStencilTexture._webGLTexture, 0);\r\n }\r\n }\r\n this._bindUnboundFramebuffer(null);\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._setupFramebufferDepthAttachments = function (generateStencilBuffer, generateDepthBuffer, width, height, samples) {\r\n if (samples === void 0) { samples = 1; }\r\n var depthStencilBuffer = null;\r\n var gl = this._gl;\r\n // Create the depth/stencil buffer\r\n if (generateStencilBuffer) {\r\n depthStencilBuffer = gl.createRenderbuffer();\r\n gl.bindRenderbuffer(gl.RENDERBUFFER, depthStencilBuffer);\r\n if (samples > 1) {\r\n gl.renderbufferStorageMultisample(gl.RENDERBUFFER, samples, gl.DEPTH24_STENCIL8, width, height);\r\n }\r\n else {\r\n gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_STENCIL, width, height);\r\n }\r\n gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.RENDERBUFFER, depthStencilBuffer);\r\n }\r\n else if (generateDepthBuffer) {\r\n depthStencilBuffer = gl.createRenderbuffer();\r\n gl.bindRenderbuffer(gl.RENDERBUFFER, depthStencilBuffer);\r\n if (samples > 1) {\r\n gl.renderbufferStorageMultisample(gl.RENDERBUFFER, samples, gl.DEPTH_COMPONENT16, width, height);\r\n }\r\n else {\r\n gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_COMPONENT16, width, height);\r\n }\r\n gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, depthStencilBuffer);\r\n }\r\n return depthStencilBuffer;\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._uploadCompressedDataToTextureDirectly = function (texture, internalFormat, width, height, data, faceIndex, lod) {\r\n if (faceIndex === void 0) { faceIndex = 0; }\r\n if (lod === void 0) { lod = 0; }\r\n var gl = this._gl;\r\n var target = gl.TEXTURE_2D;\r\n if (texture.isCube) {\r\n target = gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex;\r\n }\r\n this._gl.compressedTexImage2D(target, lod, internalFormat, width, height, 0, data);\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._uploadDataToTextureDirectly = function (texture, imageData, faceIndex, lod, babylonInternalFormat, useTextureWidthAndHeight) {\r\n if (faceIndex === void 0) { faceIndex = 0; }\r\n if (lod === void 0) { lod = 0; }\r\n if (useTextureWidthAndHeight === void 0) { useTextureWidthAndHeight = false; }\r\n var gl = this._gl;\r\n var textureType = this._getWebGLTextureType(texture.type);\r\n var format = this._getInternalFormat(texture.format);\r\n var internalFormat = babylonInternalFormat === undefined ? this._getRGBABufferInternalSizedFormat(texture.type, format) : this._getInternalFormat(babylonInternalFormat);\r\n this._unpackFlipY(texture.invertY);\r\n var target = gl.TEXTURE_2D;\r\n if (texture.isCube) {\r\n target = gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex;\r\n }\r\n var lodMaxWidth = Math.round(Math.log(texture.width) * Math.LOG2E);\r\n var lodMaxHeight = Math.round(Math.log(texture.height) * Math.LOG2E);\r\n var width = useTextureWidthAndHeight ? texture.width : Math.pow(2, Math.max(lodMaxWidth - lod, 0));\r\n var height = useTextureWidthAndHeight ? texture.height : Math.pow(2, Math.max(lodMaxHeight - lod, 0));\r\n gl.texImage2D(target, lod, internalFormat, width, height, 0, format, textureType, imageData);\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._uploadArrayBufferViewToTexture = function (texture, imageData, faceIndex, lod) {\r\n if (faceIndex === void 0) { faceIndex = 0; }\r\n if (lod === void 0) { lod = 0; }\r\n var gl = this._gl;\r\n var bindTarget = texture.isCube ? gl.TEXTURE_CUBE_MAP : gl.TEXTURE_2D;\r\n this._bindTextureDirectly(bindTarget, texture, true);\r\n this._uploadDataToTextureDirectly(texture, imageData, faceIndex, lod);\r\n this._bindTextureDirectly(bindTarget, null, true);\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._uploadImageToTexture = function (texture, image, faceIndex, lod) {\r\n if (faceIndex === void 0) { faceIndex = 0; }\r\n if (lod === void 0) { lod = 0; }\r\n var gl = this._gl;\r\n var textureType = this._getWebGLTextureType(texture.type);\r\n var format = this._getInternalFormat(texture.format);\r\n var internalFormat = this._getRGBABufferInternalSizedFormat(texture.type, format);\r\n var bindTarget = texture.isCube ? gl.TEXTURE_CUBE_MAP : gl.TEXTURE_2D;\r\n this._bindTextureDirectly(bindTarget, texture, true);\r\n this._unpackFlipY(texture.invertY);\r\n var target = gl.TEXTURE_2D;\r\n if (texture.isCube) {\r\n target = gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex;\r\n }\r\n gl.texImage2D(target, lod, internalFormat, format, textureType, image);\r\n this._bindTextureDirectly(bindTarget, null, true);\r\n };\r\n /**\r\n * @hidden\r\n */\r\n ThinEngine.prototype._setCubeMapTextureParams = function (loadMipmap) {\r\n var gl = this._gl;\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MIN_FILTER, loadMipmap ? gl.LINEAR_MIPMAP_LINEAR : gl.LINEAR);\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\r\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);\r\n };\r\n ThinEngine.prototype._prepareWebGLTextureContinuation = function (texture, scene, noMipmap, isCompressed, samplingMode) {\r\n var gl = this._gl;\r\n if (!gl) {\r\n return;\r\n }\r\n var filters = this._getSamplingParameters(samplingMode, !noMipmap);\r\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, filters.mag);\r\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, filters.min);\r\n if (!noMipmap && !isCompressed) {\r\n gl.generateMipmap(gl.TEXTURE_2D);\r\n }\r\n this._bindTextureDirectly(gl.TEXTURE_2D, null);\r\n // this.resetTextureCache();\r\n if (scene) {\r\n scene._removePendingData(texture);\r\n }\r\n texture.onLoadedObservable.notifyObservers(texture);\r\n texture.onLoadedObservable.clear();\r\n };\r\n ThinEngine.prototype._prepareWebGLTexture = function (texture, scene, width, height, invertY, noMipmap, isCompressed, processFunction, samplingMode) {\r\n var _this = this;\r\n if (samplingMode === void 0) { samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE; }\r\n var maxTextureSize = this.getCaps().maxTextureSize;\r\n var potWidth = Math.min(maxTextureSize, this.needPOTTextures ? ThinEngine.GetExponentOfTwo(width, maxTextureSize) : width);\r\n var potHeight = Math.min(maxTextureSize, this.needPOTTextures ? ThinEngine.GetExponentOfTwo(height, maxTextureSize) : height);\r\n var gl = this._gl;\r\n if (!gl) {\r\n return;\r\n }\r\n if (!texture._webGLTexture) {\r\n // this.resetTextureCache();\r\n if (scene) {\r\n scene._removePendingData(texture);\r\n }\r\n return;\r\n }\r\n this._bindTextureDirectly(gl.TEXTURE_2D, texture, true);\r\n this._unpackFlipY(invertY === undefined ? true : (invertY ? true : false));\r\n texture.baseWidth = width;\r\n texture.baseHeight = height;\r\n texture.width = potWidth;\r\n texture.height = potHeight;\r\n texture.isReady = true;\r\n if (processFunction(potWidth, potHeight, function () {\r\n _this._prepareWebGLTextureContinuation(texture, scene, noMipmap, isCompressed, samplingMode);\r\n })) {\r\n // Returning as texture needs extra async steps\r\n return;\r\n }\r\n this._prepareWebGLTextureContinuation(texture, scene, noMipmap, isCompressed, samplingMode);\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._releaseFramebufferObjects = function (texture) {\r\n var gl = this._gl;\r\n if (texture._framebuffer) {\r\n gl.deleteFramebuffer(texture._framebuffer);\r\n texture._framebuffer = null;\r\n }\r\n if (texture._depthStencilBuffer) {\r\n gl.deleteRenderbuffer(texture._depthStencilBuffer);\r\n texture._depthStencilBuffer = null;\r\n }\r\n if (texture._MSAAFramebuffer) {\r\n gl.deleteFramebuffer(texture._MSAAFramebuffer);\r\n texture._MSAAFramebuffer = null;\r\n }\r\n if (texture._MSAARenderBuffer) {\r\n gl.deleteRenderbuffer(texture._MSAARenderBuffer);\r\n texture._MSAARenderBuffer = null;\r\n }\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._releaseTexture = function (texture) {\r\n this._releaseFramebufferObjects(texture);\r\n this._deleteTexture(texture._webGLTexture);\r\n // Unbind channels\r\n this.unbindAllTextures();\r\n var index = this._internalTexturesCache.indexOf(texture);\r\n if (index !== -1) {\r\n this._internalTexturesCache.splice(index, 1);\r\n }\r\n // Integrated fixed lod samplers.\r\n if (texture._lodTextureHigh) {\r\n texture._lodTextureHigh.dispose();\r\n }\r\n if (texture._lodTextureMid) {\r\n texture._lodTextureMid.dispose();\r\n }\r\n if (texture._lodTextureLow) {\r\n texture._lodTextureLow.dispose();\r\n }\r\n // Integrated irradiance map.\r\n if (texture._irradianceTexture) {\r\n texture._irradianceTexture.dispose();\r\n }\r\n };\r\n ThinEngine.prototype._deleteTexture = function (texture) {\r\n this._gl.deleteTexture(texture);\r\n };\r\n ThinEngine.prototype._setProgram = function (program) {\r\n if (this._currentProgram !== program) {\r\n this._gl.useProgram(program);\r\n this._currentProgram = program;\r\n }\r\n };\r\n /**\r\n * Binds an effect to the webGL context\r\n * @param effect defines the effect to bind\r\n */\r\n ThinEngine.prototype.bindSamplers = function (effect) {\r\n var webGLPipelineContext = effect.getPipelineContext();\r\n this._setProgram(webGLPipelineContext.program);\r\n var samplers = effect.getSamplers();\r\n for (var index = 0; index < samplers.length; index++) {\r\n var uniform = effect.getUniform(samplers[index]);\r\n if (uniform) {\r\n this._boundUniforms[index] = uniform;\r\n }\r\n }\r\n this._currentEffect = null;\r\n };\r\n ThinEngine.prototype._activateCurrentTexture = function () {\r\n if (this._currentTextureChannel !== this._activeChannel) {\r\n this._gl.activeTexture(this._gl.TEXTURE0 + this._activeChannel);\r\n this._currentTextureChannel = this._activeChannel;\r\n }\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._bindTextureDirectly = function (target, texture, forTextureDataUpdate, force) {\r\n if (forTextureDataUpdate === void 0) { forTextureDataUpdate = false; }\r\n if (force === void 0) { force = false; }\r\n var wasPreviouslyBound = false;\r\n var isTextureForRendering = texture && texture._associatedChannel > -1;\r\n if (forTextureDataUpdate && isTextureForRendering) {\r\n this._activeChannel = texture._associatedChannel;\r\n }\r\n var currentTextureBound = this._boundTexturesCache[this._activeChannel];\r\n if (currentTextureBound !== texture || force) {\r\n this._activateCurrentTexture();\r\n if (texture && texture.isMultiview) {\r\n this._gl.bindTexture(target, texture ? texture._colorTextureArray : null);\r\n }\r\n else {\r\n this._gl.bindTexture(target, texture ? texture._webGLTexture : null);\r\n }\r\n this._boundTexturesCache[this._activeChannel] = texture;\r\n if (texture) {\r\n texture._associatedChannel = this._activeChannel;\r\n }\r\n }\r\n else if (forTextureDataUpdate) {\r\n wasPreviouslyBound = true;\r\n this._activateCurrentTexture();\r\n }\r\n if (isTextureForRendering && !forTextureDataUpdate) {\r\n this._bindSamplerUniformToChannel(texture._associatedChannel, this._activeChannel);\r\n }\r\n return wasPreviouslyBound;\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._bindTexture = function (channel, texture) {\r\n if (channel === undefined) {\r\n return;\r\n }\r\n if (texture) {\r\n texture._associatedChannel = channel;\r\n }\r\n this._activeChannel = channel;\r\n this._bindTextureDirectly(this._gl.TEXTURE_2D, texture);\r\n };\r\n /**\r\n * Unbind all textures from the webGL context\r\n */\r\n ThinEngine.prototype.unbindAllTextures = function () {\r\n for (var channel = 0; channel < this._maxSimultaneousTextures; channel++) {\r\n this._activeChannel = channel;\r\n this._bindTextureDirectly(this._gl.TEXTURE_2D, null);\r\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null);\r\n if (this.webGLVersion > 1) {\r\n this._bindTextureDirectly(this._gl.TEXTURE_3D, null);\r\n }\r\n }\r\n };\r\n /**\r\n * Sets a texture to the according uniform.\r\n * @param channel The texture channel\r\n * @param uniform The uniform to set\r\n * @param texture The texture to apply\r\n */\r\n ThinEngine.prototype.setTexture = function (channel, uniform, texture) {\r\n if (channel === undefined) {\r\n return;\r\n }\r\n if (uniform) {\r\n this._boundUniforms[channel] = uniform;\r\n }\r\n this._setTexture(channel, texture);\r\n };\r\n ThinEngine.prototype._bindSamplerUniformToChannel = function (sourceSlot, destination) {\r\n var uniform = this._boundUniforms[sourceSlot];\r\n if (!uniform || uniform._currentState === destination) {\r\n return;\r\n }\r\n this._gl.uniform1i(uniform, destination);\r\n uniform._currentState = destination;\r\n };\r\n ThinEngine.prototype._getTextureWrapMode = function (mode) {\r\n switch (mode) {\r\n case Constants.TEXTURE_WRAP_ADDRESSMODE:\r\n return this._gl.REPEAT;\r\n case Constants.TEXTURE_CLAMP_ADDRESSMODE:\r\n return this._gl.CLAMP_TO_EDGE;\r\n case Constants.TEXTURE_MIRROR_ADDRESSMODE:\r\n return this._gl.MIRRORED_REPEAT;\r\n }\r\n return this._gl.REPEAT;\r\n };\r\n ThinEngine.prototype._setTexture = function (channel, texture, isPartOfTextureArray, depthStencilTexture) {\r\n if (isPartOfTextureArray === void 0) { isPartOfTextureArray = false; }\r\n if (depthStencilTexture === void 0) { depthStencilTexture = false; }\r\n // Not ready?\r\n if (!texture) {\r\n if (this._boundTexturesCache[channel] != null) {\r\n this._activeChannel = channel;\r\n this._bindTextureDirectly(this._gl.TEXTURE_2D, null);\r\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null);\r\n if (this.webGLVersion > 1) {\r\n this._bindTextureDirectly(this._gl.TEXTURE_3D, null);\r\n }\r\n }\r\n return false;\r\n }\r\n // Video\r\n if (texture.video) {\r\n this._activeChannel = channel;\r\n texture.update();\r\n }\r\n else if (texture.delayLoadState === Constants.DELAYLOADSTATE_NOTLOADED) { // Delay loading\r\n texture.delayLoad();\r\n return false;\r\n }\r\n var internalTexture;\r\n if (depthStencilTexture) {\r\n internalTexture = texture.depthStencilTexture;\r\n }\r\n else if (texture.isReady()) {\r\n internalTexture = texture.getInternalTexture();\r\n }\r\n else if (texture.isCube) {\r\n internalTexture = this.emptyCubeTexture;\r\n }\r\n else if (texture.is3D) {\r\n internalTexture = this.emptyTexture3D;\r\n }\r\n else {\r\n internalTexture = this.emptyTexture;\r\n }\r\n if (!isPartOfTextureArray && internalTexture) {\r\n internalTexture._associatedChannel = channel;\r\n }\r\n var needToBind = true;\r\n if (this._boundTexturesCache[channel] === internalTexture) {\r\n if (!isPartOfTextureArray) {\r\n this._bindSamplerUniformToChannel(internalTexture._associatedChannel, channel);\r\n }\r\n needToBind = false;\r\n }\r\n this._activeChannel = channel;\r\n if (internalTexture && internalTexture.isMultiview) {\r\n if (needToBind) {\r\n this._bindTextureDirectly(this._gl.TEXTURE_2D_ARRAY, internalTexture, isPartOfTextureArray);\r\n }\r\n }\r\n else if (internalTexture && internalTexture.is3D) {\r\n if (needToBind) {\r\n this._bindTextureDirectly(this._gl.TEXTURE_3D, internalTexture, isPartOfTextureArray);\r\n }\r\n if (internalTexture && internalTexture._cachedWrapU !== texture.wrapU) {\r\n internalTexture._cachedWrapU = texture.wrapU;\r\n this._setTextureParameterInteger(this._gl.TEXTURE_3D, this._gl.TEXTURE_WRAP_S, this._getTextureWrapMode(texture.wrapU), internalTexture);\r\n }\r\n if (internalTexture && internalTexture._cachedWrapV !== texture.wrapV) {\r\n internalTexture._cachedWrapV = texture.wrapV;\r\n this._setTextureParameterInteger(this._gl.TEXTURE_3D, this._gl.TEXTURE_WRAP_T, this._getTextureWrapMode(texture.wrapV), internalTexture);\r\n }\r\n if (internalTexture && internalTexture._cachedWrapR !== texture.wrapR) {\r\n internalTexture._cachedWrapR = texture.wrapR;\r\n this._setTextureParameterInteger(this._gl.TEXTURE_3D, this._gl.TEXTURE_WRAP_R, this._getTextureWrapMode(texture.wrapR), internalTexture);\r\n }\r\n this._setAnisotropicLevel(this._gl.TEXTURE_3D, texture);\r\n }\r\n else if (internalTexture && internalTexture.isCube) {\r\n if (needToBind) {\r\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, internalTexture, isPartOfTextureArray);\r\n }\r\n if (internalTexture._cachedCoordinatesMode !== texture.coordinatesMode) {\r\n internalTexture._cachedCoordinatesMode = texture.coordinatesMode;\r\n // CUBIC_MODE and SKYBOX_MODE both require CLAMP_TO_EDGE. All other modes use REPEAT.\r\n var textureWrapMode = (texture.coordinatesMode !== Constants.TEXTURE_CUBIC_MODE && texture.coordinatesMode !== Constants.TEXTURE_SKYBOX_MODE) ? this._gl.REPEAT : this._gl.CLAMP_TO_EDGE;\r\n this._setTextureParameterInteger(this._gl.TEXTURE_CUBE_MAP, this._gl.TEXTURE_WRAP_S, textureWrapMode, internalTexture);\r\n this._setTextureParameterInteger(this._gl.TEXTURE_CUBE_MAP, this._gl.TEXTURE_WRAP_T, textureWrapMode);\r\n }\r\n this._setAnisotropicLevel(this._gl.TEXTURE_CUBE_MAP, texture);\r\n }\r\n else {\r\n if (needToBind) {\r\n this._bindTextureDirectly(this._gl.TEXTURE_2D, internalTexture, isPartOfTextureArray);\r\n }\r\n if (internalTexture && internalTexture._cachedWrapU !== texture.wrapU) {\r\n internalTexture._cachedWrapU = texture.wrapU;\r\n this._setTextureParameterInteger(this._gl.TEXTURE_2D, this._gl.TEXTURE_WRAP_S, this._getTextureWrapMode(texture.wrapU), internalTexture);\r\n }\r\n if (internalTexture && internalTexture._cachedWrapV !== texture.wrapV) {\r\n internalTexture._cachedWrapV = texture.wrapV;\r\n this._setTextureParameterInteger(this._gl.TEXTURE_2D, this._gl.TEXTURE_WRAP_T, this._getTextureWrapMode(texture.wrapV), internalTexture);\r\n }\r\n this._setAnisotropicLevel(this._gl.TEXTURE_2D, texture);\r\n }\r\n return true;\r\n };\r\n /**\r\n * Sets an array of texture to the webGL context\r\n * @param channel defines the channel where the texture array must be set\r\n * @param uniform defines the associated uniform location\r\n * @param textures defines the array of textures to bind\r\n */\r\n ThinEngine.prototype.setTextureArray = function (channel, uniform, textures) {\r\n if (channel === undefined || !uniform) {\r\n return;\r\n }\r\n if (!this._textureUnits || this._textureUnits.length !== textures.length) {\r\n this._textureUnits = new Int32Array(textures.length);\r\n }\r\n for (var i = 0; i < textures.length; i++) {\r\n var texture = textures[i].getInternalTexture();\r\n if (texture) {\r\n this._textureUnits[i] = channel + i;\r\n texture._associatedChannel = channel + i;\r\n }\r\n else {\r\n this._textureUnits[i] = -1;\r\n }\r\n }\r\n this._gl.uniform1iv(uniform, this._textureUnits);\r\n for (var index = 0; index < textures.length; index++) {\r\n this._setTexture(this._textureUnits[index], textures[index], true);\r\n }\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._setAnisotropicLevel = function (target, texture) {\r\n var internalTexture = texture.getInternalTexture();\r\n if (!internalTexture) {\r\n return;\r\n }\r\n var anisotropicFilterExtension = this._caps.textureAnisotropicFilterExtension;\r\n var value = texture.anisotropicFilteringLevel;\r\n if (internalTexture.samplingMode !== Constants.TEXTURE_LINEAR_LINEAR_MIPNEAREST\r\n && internalTexture.samplingMode !== Constants.TEXTURE_LINEAR_LINEAR_MIPLINEAR\r\n && internalTexture.samplingMode !== Constants.TEXTURE_LINEAR_LINEAR) {\r\n value = 1; // Forcing the anisotropic to 1 because else webgl will force filters to linear\r\n }\r\n if (anisotropicFilterExtension && internalTexture._cachedAnisotropicFilteringLevel !== value) {\r\n this._setTextureParameterFloat(target, anisotropicFilterExtension.TEXTURE_MAX_ANISOTROPY_EXT, Math.min(value, this._caps.maxAnisotropy), internalTexture);\r\n internalTexture._cachedAnisotropicFilteringLevel = value;\r\n }\r\n };\r\n ThinEngine.prototype._setTextureParameterFloat = function (target, parameter, value, texture) {\r\n this._bindTextureDirectly(target, texture, true, true);\r\n this._gl.texParameterf(target, parameter, value);\r\n };\r\n ThinEngine.prototype._setTextureParameterInteger = function (target, parameter, value, texture) {\r\n if (texture) {\r\n this._bindTextureDirectly(target, texture, true, true);\r\n }\r\n this._gl.texParameteri(target, parameter, value);\r\n };\r\n /**\r\n * Unbind all vertex attributes from the webGL context\r\n */\r\n ThinEngine.prototype.unbindAllAttributes = function () {\r\n if (this._mustWipeVertexAttributes) {\r\n this._mustWipeVertexAttributes = false;\r\n for (var i = 0; i < this._caps.maxVertexAttribs; i++) {\r\n this._gl.disableVertexAttribArray(i);\r\n this._vertexAttribArraysEnabled[i] = false;\r\n this._currentBufferPointers[i].active = false;\r\n }\r\n return;\r\n }\r\n for (var i = 0, ul = this._vertexAttribArraysEnabled.length; i < ul; i++) {\r\n if (i >= this._caps.maxVertexAttribs || !this._vertexAttribArraysEnabled[i]) {\r\n continue;\r\n }\r\n this._gl.disableVertexAttribArray(i);\r\n this._vertexAttribArraysEnabled[i] = false;\r\n this._currentBufferPointers[i].active = false;\r\n }\r\n };\r\n /**\r\n * Force the engine to release all cached effects. This means that next effect compilation will have to be done completely even if a similar effect was already compiled\r\n */\r\n ThinEngine.prototype.releaseEffects = function () {\r\n for (var name in this._compiledEffects) {\r\n var webGLPipelineContext = this._compiledEffects[name].getPipelineContext();\r\n this._deletePipelineContext(webGLPipelineContext);\r\n }\r\n this._compiledEffects = {};\r\n };\r\n /**\r\n * Dispose and release all associated resources\r\n */\r\n ThinEngine.prototype.dispose = function () {\r\n this.stopRenderLoop();\r\n // Empty texture\r\n if (this._emptyTexture) {\r\n this._releaseTexture(this._emptyTexture);\r\n this._emptyTexture = null;\r\n }\r\n if (this._emptyCubeTexture) {\r\n this._releaseTexture(this._emptyCubeTexture);\r\n this._emptyCubeTexture = null;\r\n }\r\n // Release effects\r\n this.releaseEffects();\r\n // Unbind\r\n this.unbindAllAttributes();\r\n this._boundUniforms = [];\r\n // Events\r\n if (DomManagement.IsWindowObjectExist()) {\r\n if (this._renderingCanvas) {\r\n if (!this._doNotHandleContextLost) {\r\n this._renderingCanvas.removeEventListener(\"webglcontextlost\", this._onContextLost);\r\n this._renderingCanvas.removeEventListener(\"webglcontextrestored\", this._onContextRestored);\r\n }\r\n }\r\n }\r\n this._workingCanvas = null;\r\n this._workingContext = null;\r\n this._currentBufferPointers = [];\r\n this._renderingCanvas = null;\r\n this._currentProgram = null;\r\n this._bindedRenderFunction = null;\r\n Effect.ResetCache();\r\n // Abort active requests\r\n for (var _i = 0, _a = this._activeRequests; _i < _a.length; _i++) {\r\n var request = _a[_i];\r\n request.abort();\r\n }\r\n };\r\n /**\r\n * Attach a new callback raised when context lost event is fired\r\n * @param callback defines the callback to call\r\n */\r\n ThinEngine.prototype.attachContextLostEvent = function (callback) {\r\n if (this._renderingCanvas) {\r\n this._renderingCanvas.addEventListener(\"webglcontextlost\", callback, false);\r\n }\r\n };\r\n /**\r\n * Attach a new callback raised when context restored event is fired\r\n * @param callback defines the callback to call\r\n */\r\n ThinEngine.prototype.attachContextRestoredEvent = function (callback) {\r\n if (this._renderingCanvas) {\r\n this._renderingCanvas.addEventListener(\"webglcontextrestored\", callback, false);\r\n }\r\n };\r\n /**\r\n * Get the current error code of the webGL context\r\n * @returns the error code\r\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/getError\r\n */\r\n ThinEngine.prototype.getError = function () {\r\n return this._gl.getError();\r\n };\r\n ThinEngine.prototype._canRenderToFloatFramebuffer = function () {\r\n if (this._webGLVersion > 1) {\r\n return this._caps.colorBufferFloat;\r\n }\r\n return this._canRenderToFramebuffer(Constants.TEXTURETYPE_FLOAT);\r\n };\r\n ThinEngine.prototype._canRenderToHalfFloatFramebuffer = function () {\r\n if (this._webGLVersion > 1) {\r\n return this._caps.colorBufferFloat;\r\n }\r\n return this._canRenderToFramebuffer(Constants.TEXTURETYPE_HALF_FLOAT);\r\n };\r\n // Thank you : http://stackoverflow.com/questions/28827511/webgl-ios-render-to-floating-point-texture\r\n ThinEngine.prototype._canRenderToFramebuffer = function (type) {\r\n var gl = this._gl;\r\n //clear existing errors\r\n while (gl.getError() !== gl.NO_ERROR) { }\r\n var successful = true;\r\n var texture = gl.createTexture();\r\n gl.bindTexture(gl.TEXTURE_2D, texture);\r\n gl.texImage2D(gl.TEXTURE_2D, 0, this._getRGBABufferInternalSizedFormat(type), 1, 1, 0, gl.RGBA, this._getWebGLTextureType(type), null);\r\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\r\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\r\n var fb = gl.createFramebuffer();\r\n gl.bindFramebuffer(gl.FRAMEBUFFER, fb);\r\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\r\n var status = gl.checkFramebufferStatus(gl.FRAMEBUFFER);\r\n successful = successful && (status === gl.FRAMEBUFFER_COMPLETE);\r\n successful = successful && (gl.getError() === gl.NO_ERROR);\r\n //try render by clearing frame buffer's color buffer\r\n if (successful) {\r\n gl.clear(gl.COLOR_BUFFER_BIT);\r\n successful = successful && (gl.getError() === gl.NO_ERROR);\r\n }\r\n //try reading from frame to ensure render occurs (just creating the FBO is not sufficient to determine if rendering is supported)\r\n if (successful) {\r\n //in practice it's sufficient to just read from the backbuffer rather than handle potentially issues reading from the texture\r\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\r\n var readFormat = gl.RGBA;\r\n var readType = gl.UNSIGNED_BYTE;\r\n var buffer = new Uint8Array(4);\r\n gl.readPixels(0, 0, 1, 1, readFormat, readType, buffer);\r\n successful = successful && (gl.getError() === gl.NO_ERROR);\r\n }\r\n //clean up\r\n gl.deleteTexture(texture);\r\n gl.deleteFramebuffer(fb);\r\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\r\n //clear accumulated errors\r\n while (!successful && (gl.getError() !== gl.NO_ERROR)) { }\r\n return successful;\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._getWebGLTextureType = function (type) {\r\n if (this._webGLVersion === 1) {\r\n switch (type) {\r\n case Constants.TEXTURETYPE_FLOAT:\r\n return this._gl.FLOAT;\r\n case Constants.TEXTURETYPE_HALF_FLOAT:\r\n return this._gl.HALF_FLOAT_OES;\r\n case Constants.TEXTURETYPE_UNSIGNED_BYTE:\r\n return this._gl.UNSIGNED_BYTE;\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4:\r\n return this._gl.UNSIGNED_SHORT_4_4_4_4;\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1:\r\n return this._gl.UNSIGNED_SHORT_5_5_5_1;\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT_5_6_5:\r\n return this._gl.UNSIGNED_SHORT_5_6_5;\r\n }\r\n return this._gl.UNSIGNED_BYTE;\r\n }\r\n switch (type) {\r\n case Constants.TEXTURETYPE_BYTE:\r\n return this._gl.BYTE;\r\n case Constants.TEXTURETYPE_UNSIGNED_BYTE:\r\n return this._gl.UNSIGNED_BYTE;\r\n case Constants.TEXTURETYPE_SHORT:\r\n return this._gl.SHORT;\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT:\r\n return this._gl.UNSIGNED_SHORT;\r\n case Constants.TEXTURETYPE_INT:\r\n return this._gl.INT;\r\n case Constants.TEXTURETYPE_UNSIGNED_INTEGER: // Refers to UNSIGNED_INT\r\n return this._gl.UNSIGNED_INT;\r\n case Constants.TEXTURETYPE_FLOAT:\r\n return this._gl.FLOAT;\r\n case Constants.TEXTURETYPE_HALF_FLOAT:\r\n return this._gl.HALF_FLOAT;\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4:\r\n return this._gl.UNSIGNED_SHORT_4_4_4_4;\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1:\r\n return this._gl.UNSIGNED_SHORT_5_5_5_1;\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT_5_6_5:\r\n return this._gl.UNSIGNED_SHORT_5_6_5;\r\n case Constants.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV:\r\n return this._gl.UNSIGNED_INT_2_10_10_10_REV;\r\n case Constants.TEXTURETYPE_UNSIGNED_INT_24_8:\r\n return this._gl.UNSIGNED_INT_24_8;\r\n case Constants.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV:\r\n return this._gl.UNSIGNED_INT_10F_11F_11F_REV;\r\n case Constants.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV:\r\n return this._gl.UNSIGNED_INT_5_9_9_9_REV;\r\n case Constants.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV:\r\n return this._gl.FLOAT_32_UNSIGNED_INT_24_8_REV;\r\n }\r\n return this._gl.UNSIGNED_BYTE;\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._getInternalFormat = function (format) {\r\n var internalFormat = this._gl.RGBA;\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_ALPHA:\r\n internalFormat = this._gl.ALPHA;\r\n break;\r\n case Constants.TEXTUREFORMAT_LUMINANCE:\r\n internalFormat = this._gl.LUMINANCE;\r\n break;\r\n case Constants.TEXTUREFORMAT_LUMINANCE_ALPHA:\r\n internalFormat = this._gl.LUMINANCE_ALPHA;\r\n break;\r\n case Constants.TEXTUREFORMAT_RED:\r\n internalFormat = this._gl.RED;\r\n break;\r\n case Constants.TEXTUREFORMAT_RG:\r\n internalFormat = this._gl.RG;\r\n break;\r\n case Constants.TEXTUREFORMAT_RGB:\r\n internalFormat = this._gl.RGB;\r\n break;\r\n case Constants.TEXTUREFORMAT_RGBA:\r\n internalFormat = this._gl.RGBA;\r\n break;\r\n }\r\n if (this._webGLVersion > 1) {\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED_INTEGER:\r\n internalFormat = this._gl.RED_INTEGER;\r\n break;\r\n case Constants.TEXTUREFORMAT_RG_INTEGER:\r\n internalFormat = this._gl.RG_INTEGER;\r\n break;\r\n case Constants.TEXTUREFORMAT_RGB_INTEGER:\r\n internalFormat = this._gl.RGB_INTEGER;\r\n break;\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n internalFormat = this._gl.RGBA_INTEGER;\r\n break;\r\n }\r\n }\r\n return internalFormat;\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._getRGBABufferInternalSizedFormat = function (type, format) {\r\n if (this._webGLVersion === 1) {\r\n if (format !== undefined) {\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_ALPHA:\r\n return this._gl.ALPHA;\r\n case Constants.TEXTUREFORMAT_LUMINANCE:\r\n return this._gl.LUMINANCE;\r\n case Constants.TEXTUREFORMAT_LUMINANCE_ALPHA:\r\n return this._gl.LUMINANCE_ALPHA;\r\n }\r\n }\r\n return this._gl.RGBA;\r\n }\r\n switch (type) {\r\n case Constants.TEXTURETYPE_BYTE:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED:\r\n return this._gl.R8_SNORM;\r\n case Constants.TEXTUREFORMAT_RG:\r\n return this._gl.RG8_SNORM;\r\n case Constants.TEXTUREFORMAT_RGB:\r\n return this._gl.RGB8_SNORM;\r\n case Constants.TEXTUREFORMAT_RED_INTEGER:\r\n return this._gl.R8I;\r\n case Constants.TEXTUREFORMAT_RG_INTEGER:\r\n return this._gl.RG8I;\r\n case Constants.TEXTUREFORMAT_RGB_INTEGER:\r\n return this._gl.RGB8I;\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n return this._gl.RGBA8I;\r\n default:\r\n return this._gl.RGBA8_SNORM;\r\n }\r\n case Constants.TEXTURETYPE_UNSIGNED_BYTE:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED:\r\n return this._gl.R8;\r\n case Constants.TEXTUREFORMAT_RG:\r\n return this._gl.RG8;\r\n case Constants.TEXTUREFORMAT_RGB:\r\n return this._gl.RGB8; // By default. Other possibilities are RGB565, SRGB8.\r\n case Constants.TEXTUREFORMAT_RGBA:\r\n return this._gl.RGBA8; // By default. Other possibilities are RGB5_A1, RGBA4, SRGB8_ALPHA8.\r\n case Constants.TEXTUREFORMAT_RED_INTEGER:\r\n return this._gl.R8UI;\r\n case Constants.TEXTUREFORMAT_RG_INTEGER:\r\n return this._gl.RG8UI;\r\n case Constants.TEXTUREFORMAT_RGB_INTEGER:\r\n return this._gl.RGB8UI;\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n return this._gl.RGBA8UI;\r\n case Constants.TEXTUREFORMAT_ALPHA:\r\n return this._gl.ALPHA;\r\n case Constants.TEXTUREFORMAT_LUMINANCE:\r\n return this._gl.LUMINANCE;\r\n case Constants.TEXTUREFORMAT_LUMINANCE_ALPHA:\r\n return this._gl.LUMINANCE_ALPHA;\r\n default:\r\n return this._gl.RGBA8;\r\n }\r\n case Constants.TEXTURETYPE_SHORT:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED_INTEGER:\r\n return this._gl.R16I;\r\n case Constants.TEXTUREFORMAT_RG_INTEGER:\r\n return this._gl.RG16I;\r\n case Constants.TEXTUREFORMAT_RGB_INTEGER:\r\n return this._gl.RGB16I;\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n return this._gl.RGBA16I;\r\n default:\r\n return this._gl.RGBA16I;\r\n }\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED_INTEGER:\r\n return this._gl.R16UI;\r\n case Constants.TEXTUREFORMAT_RG_INTEGER:\r\n return this._gl.RG16UI;\r\n case Constants.TEXTUREFORMAT_RGB_INTEGER:\r\n return this._gl.RGB16UI;\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n return this._gl.RGBA16UI;\r\n default:\r\n return this._gl.RGBA16UI;\r\n }\r\n case Constants.TEXTURETYPE_INT:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED_INTEGER:\r\n return this._gl.R32I;\r\n case Constants.TEXTUREFORMAT_RG_INTEGER:\r\n return this._gl.RG32I;\r\n case Constants.TEXTUREFORMAT_RGB_INTEGER:\r\n return this._gl.RGB32I;\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n return this._gl.RGBA32I;\r\n default:\r\n return this._gl.RGBA32I;\r\n }\r\n case Constants.TEXTURETYPE_UNSIGNED_INTEGER: // Refers to UNSIGNED_INT\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED_INTEGER:\r\n return this._gl.R32UI;\r\n case Constants.TEXTUREFORMAT_RG_INTEGER:\r\n return this._gl.RG32UI;\r\n case Constants.TEXTUREFORMAT_RGB_INTEGER:\r\n return this._gl.RGB32UI;\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n return this._gl.RGBA32UI;\r\n default:\r\n return this._gl.RGBA32UI;\r\n }\r\n case Constants.TEXTURETYPE_FLOAT:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED:\r\n return this._gl.R32F; // By default. Other possibility is R16F.\r\n case Constants.TEXTUREFORMAT_RG:\r\n return this._gl.RG32F; // By default. Other possibility is RG16F.\r\n case Constants.TEXTUREFORMAT_RGB:\r\n return this._gl.RGB32F; // By default. Other possibilities are RGB16F, R11F_G11F_B10F, RGB9_E5.\r\n case Constants.TEXTUREFORMAT_RGBA:\r\n return this._gl.RGBA32F; // By default. Other possibility is RGBA16F.\r\n default:\r\n return this._gl.RGBA32F;\r\n }\r\n case Constants.TEXTURETYPE_HALF_FLOAT:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RED:\r\n return this._gl.R16F;\r\n case Constants.TEXTUREFORMAT_RG:\r\n return this._gl.RG16F;\r\n case Constants.TEXTUREFORMAT_RGB:\r\n return this._gl.RGB16F; // By default. Other possibilities are R11F_G11F_B10F, RGB9_E5.\r\n case Constants.TEXTUREFORMAT_RGBA:\r\n return this._gl.RGBA16F;\r\n default:\r\n return this._gl.RGBA16F;\r\n }\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT_5_6_5:\r\n return this._gl.RGB565;\r\n case Constants.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV:\r\n return this._gl.R11F_G11F_B10F;\r\n case Constants.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV:\r\n return this._gl.RGB9_E5;\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4:\r\n return this._gl.RGBA4;\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1:\r\n return this._gl.RGB5_A1;\r\n case Constants.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV:\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_RGBA:\r\n return this._gl.RGB10_A2; // By default. Other possibility is RGB5_A1.\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER:\r\n return this._gl.RGB10_A2UI;\r\n default:\r\n return this._gl.RGB10_A2;\r\n }\r\n }\r\n return this._gl.RGBA8;\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._getRGBAMultiSampleBufferFormat = function (type) {\r\n if (type === Constants.TEXTURETYPE_FLOAT) {\r\n return this._gl.RGBA32F;\r\n }\r\n else if (type === Constants.TEXTURETYPE_HALF_FLOAT) {\r\n return this._gl.RGBA16F;\r\n }\r\n return this._gl.RGBA8;\r\n };\r\n /** @hidden */\r\n ThinEngine.prototype._loadFile = function (url, onSuccess, onProgress, offlineProvider, useArrayBuffer, onError) {\r\n var _this = this;\r\n var request = FileTools.LoadFile(url, onSuccess, onProgress, offlineProvider, useArrayBuffer, onError);\r\n this._activeRequests.push(request);\r\n request.onCompleteObservable.add(function (request) {\r\n _this._activeRequests.splice(_this._activeRequests.indexOf(request), 1);\r\n });\r\n return request;\r\n };\r\n // Statics\r\n /**\r\n * Gets a boolean indicating if the engine can be instanciated (ie. if a webGL context can be found)\r\n * @returns true if the engine can be created\r\n * @ignorenaming\r\n */\r\n ThinEngine.isSupported = function () {\r\n try {\r\n var tempcanvas = document.createElement(\"canvas\");\r\n var gl = tempcanvas.getContext(\"webgl\") || tempcanvas.getContext(\"experimental-webgl\");\r\n return gl != null && !!window.WebGLRenderingContext;\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n };\r\n /**\r\n * Find the next highest power of two.\r\n * @param x Number to start search from.\r\n * @return Next highest power of two.\r\n */\r\n ThinEngine.CeilingPOT = function (x) {\r\n x--;\r\n x |= x >> 1;\r\n x |= x >> 2;\r\n x |= x >> 4;\r\n x |= x >> 8;\r\n x |= x >> 16;\r\n x++;\r\n return x;\r\n };\r\n /**\r\n * Find the next lowest power of two.\r\n * @param x Number to start search from.\r\n * @return Next lowest power of two.\r\n */\r\n ThinEngine.FloorPOT = function (x) {\r\n x = x | (x >> 1);\r\n x = x | (x >> 2);\r\n x = x | (x >> 4);\r\n x = x | (x >> 8);\r\n x = x | (x >> 16);\r\n return x - (x >> 1);\r\n };\r\n /**\r\n * Find the nearest power of two.\r\n * @param x Number to start search from.\r\n * @return Next nearest power of two.\r\n */\r\n ThinEngine.NearestPOT = function (x) {\r\n var c = ThinEngine.CeilingPOT(x);\r\n var f = ThinEngine.FloorPOT(x);\r\n return (c - x) > (x - f) ? f : c;\r\n };\r\n /**\r\n * Get the closest exponent of two\r\n * @param value defines the value to approximate\r\n * @param max defines the maximum value to return\r\n * @param mode defines how to define the closest value\r\n * @returns closest exponent of two of the given value\r\n */\r\n ThinEngine.GetExponentOfTwo = function (value, max, mode) {\r\n if (mode === void 0) { mode = Constants.SCALEMODE_NEAREST; }\r\n var pot;\r\n switch (mode) {\r\n case Constants.SCALEMODE_FLOOR:\r\n pot = ThinEngine.FloorPOT(value);\r\n break;\r\n case Constants.SCALEMODE_NEAREST:\r\n pot = ThinEngine.NearestPOT(value);\r\n break;\r\n case Constants.SCALEMODE_CEILING:\r\n default:\r\n pot = ThinEngine.CeilingPOT(value);\r\n break;\r\n }\r\n return Math.min(pot, max);\r\n };\r\n /**\r\n * Queue a new function into the requested animation frame pool (ie. this function will be executed byt the browser for the next frame)\r\n * @param func - the function to be called\r\n * @param requester - the object that will request the next frame. Falls back to window.\r\n * @returns frame number\r\n */\r\n ThinEngine.QueueNewFrame = function (func, requester) {\r\n if (!DomManagement.IsWindowObjectExist()) {\r\n return setTimeout(func, 16);\r\n }\r\n if (!requester) {\r\n requester = window;\r\n }\r\n if (requester.requestAnimationFrame) {\r\n return requester.requestAnimationFrame(func);\r\n }\r\n else if (requester.msRequestAnimationFrame) {\r\n return requester.msRequestAnimationFrame(func);\r\n }\r\n else if (requester.webkitRequestAnimationFrame) {\r\n return requester.webkitRequestAnimationFrame(func);\r\n }\r\n else if (requester.mozRequestAnimationFrame) {\r\n return requester.mozRequestAnimationFrame(func);\r\n }\r\n else if (requester.oRequestAnimationFrame) {\r\n return requester.oRequestAnimationFrame(func);\r\n }\r\n else {\r\n return window.setTimeout(func, 16);\r\n }\r\n };\r\n /** Use this array to turn off some WebGL2 features on known buggy browsers version */\r\n ThinEngine.ExceptionList = [\r\n { key: \"Chrome\\/63\\.0\", capture: \"63\\\\.0\\\\.3239\\\\.(\\\\d+)\", captureConstraint: 108, targets: [\"uniformBuffer\"] },\r\n { key: \"Firefox\\/58\", capture: null, captureConstraint: null, targets: [\"uniformBuffer\"] },\r\n { key: \"Firefox\\/59\", capture: null, captureConstraint: null, targets: [\"uniformBuffer\"] },\r\n { key: \"Chrome\\/72.+?Mobile\", capture: null, captureConstraint: null, targets: [\"vao\"] },\r\n { key: \"Chrome\\/73.+?Mobile\", capture: null, captureConstraint: null, targets: [\"vao\"] },\r\n { key: \"Chrome\\/74.+?Mobile\", capture: null, captureConstraint: null, targets: [\"vao\"] },\r\n { key: \"Mac OS.+Chrome\\/71\", capture: null, captureConstraint: null, targets: [\"vao\"] },\r\n { key: \"Mac OS.+Chrome\\/72\", capture: null, captureConstraint: null, targets: [\"vao\"] }\r\n ];\r\n /** @hidden */\r\n ThinEngine._TextureLoaders = [];\r\n // Updatable statics so stick with vars here\r\n /**\r\n * Gets or sets the epsilon value used by collision engine\r\n */\r\n ThinEngine.CollisionsEpsilon = 0.001;\r\n return ThinEngine;\r\n}());\r\nexport { ThinEngine };\r\n//# sourceMappingURL=thinEngine.js.map"
  8445. },
  8446. {
  8447. "id": "../../.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  8448. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\Textures\\internalTexture.js",
  8449. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  8450. "index": 32,
  8451. "index2": 31,
  8452. "size": 16680,
  8453. "cacheable": true,
  8454. "built": true,
  8455. "optional": false,
  8456. "prefetched": false,
  8457. "chunks": [
  8458. "thinEngineOnly"
  8459. ],
  8460. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8461. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8462. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8463. "issuerPath": [
  8464. {
  8465. "id": "./thinEngineOnly.ts",
  8466. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  8467. "name": "./thinEngineOnly.ts",
  8468. "profile": {
  8469. "factory": 42,
  8470. "building": 2115
  8471. }
  8472. },
  8473. {
  8474. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8475. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8476. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8477. "profile": {
  8478. "factory": 6,
  8479. "building": 110
  8480. }
  8481. }
  8482. ],
  8483. "profile": {
  8484. "factory": 59,
  8485. "building": 41,
  8486. "dependencies": 4
  8487. },
  8488. "failed": false,
  8489. "errors": 0,
  8490. "warnings": 0,
  8491. "assets": [],
  8492. "reasons": [
  8493. {
  8494. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8495. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8496. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8497. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8498. "type": "harmony side effect evaluation",
  8499. "userRequest": "../Materials/Textures/internalTexture",
  8500. "loc": "12:0-72"
  8501. },
  8502. {
  8503. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8504. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8505. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8506. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8507. "type": "harmony import specifier",
  8508. "userRequest": "../Materials/Textures/internalTexture",
  8509. "loc": "2399:48-63"
  8510. },
  8511. {
  8512. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8513. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8514. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8515. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8516. "type": "harmony import specifier",
  8517. "userRequest": "../Materials/Textures/internalTexture",
  8518. "loc": "2399:70-85"
  8519. },
  8520. {
  8521. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8522. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8523. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8524. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8525. "type": "harmony import specifier",
  8526. "userRequest": "../Materials/Textures/internalTexture",
  8527. "loc": "2523:43-58"
  8528. },
  8529. {
  8530. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8531. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8532. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8533. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8534. "type": "harmony import specifier",
  8535. "userRequest": "../Materials/Textures/internalTexture",
  8536. "loc": "2523:66-81"
  8537. },
  8538. {
  8539. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8540. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8541. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8542. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8543. "type": "harmony import specifier",
  8544. "userRequest": "../Materials/Textures/internalTexture",
  8545. "loc": "2742:34-49"
  8546. },
  8547. {
  8548. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8549. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8550. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8551. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8552. "type": "harmony import specifier",
  8553. "userRequest": "../Materials/Textures/internalTexture",
  8554. "loc": "2742:56-71"
  8555. }
  8556. ],
  8557. "providedExports": [
  8558. "InternalTexture"
  8559. ],
  8560. "optimizationBailout": [],
  8561. "depth": 2,
  8562. "source": "import { Observable } from \"../../Misc/observable\";\r\nimport { RenderTargetCreationOptions } from \"../../Materials/Textures/renderTargetCreationOptions\";\r\nimport { Constants } from \"../../Engines/constants\";\r\nimport { _DevTools } from '../../Misc/devTools';\r\n/**\r\n * Class used to store data associated with WebGL texture data for the engine\r\n * This class should not be used directly\r\n */\r\nvar InternalTexture = /** @class */ (function () {\r\n /**\r\n * Creates a new InternalTexture\r\n * @param engine defines the engine to use\r\n * @param dataSource defines the type of data that will be used\r\n * @param delayAllocation if the texture allocation should be delayed (default: false)\r\n */\r\n function InternalTexture(engine, dataSource, delayAllocation) {\r\n if (delayAllocation === void 0) { delayAllocation = false; }\r\n /**\r\n * Defines if the texture is ready\r\n */\r\n this.isReady = false;\r\n /**\r\n * Defines if the texture is a cube texture\r\n */\r\n this.isCube = false;\r\n /**\r\n * Defines if the texture contains 3D data\r\n */\r\n this.is3D = false;\r\n /**\r\n * Defines if the texture contains multiview data\r\n */\r\n this.isMultiview = false;\r\n /**\r\n * Gets the URL used to load this texture\r\n */\r\n this.url = \"\";\r\n /**\r\n * Gets the sampling mode of the texture\r\n */\r\n this.samplingMode = -1;\r\n /**\r\n * Gets a boolean indicating if the texture needs mipmaps generation\r\n */\r\n this.generateMipMaps = false;\r\n /**\r\n * Gets the number of samples used by the texture (WebGL2+ only)\r\n */\r\n this.samples = 0;\r\n /**\r\n * Gets the type of the texture (int, float...)\r\n */\r\n this.type = -1;\r\n /**\r\n * Gets the format of the texture (RGB, RGBA...)\r\n */\r\n this.format = -1;\r\n /**\r\n * Observable called when the texture is loaded\r\n */\r\n this.onLoadedObservable = new Observable();\r\n /**\r\n * Gets the width of the texture\r\n */\r\n this.width = 0;\r\n /**\r\n * Gets the height of the texture\r\n */\r\n this.height = 0;\r\n /**\r\n * Gets the depth of the texture\r\n */\r\n this.depth = 0;\r\n /**\r\n * Gets the initial width of the texture (It could be rescaled if the current system does not support non power of two textures)\r\n */\r\n this.baseWidth = 0;\r\n /**\r\n * Gets the initial height of the texture (It could be rescaled if the current system does not support non power of two textures)\r\n */\r\n this.baseHeight = 0;\r\n /**\r\n * Gets the initial depth of the texture (It could be rescaled if the current system does not support non power of two textures)\r\n */\r\n this.baseDepth = 0;\r\n /**\r\n * Gets a boolean indicating if the texture is inverted on Y axis\r\n */\r\n this.invertY = false;\r\n // Private\r\n /** @hidden */\r\n this._invertVScale = false;\r\n /** @hidden */\r\n this._associatedChannel = -1;\r\n /** @hidden */\r\n this._dataSource = InternalTexture.DATASOURCE_UNKNOWN;\r\n /** @hidden */\r\n this._buffer = null;\r\n /** @hidden */\r\n this._bufferView = null;\r\n /** @hidden */\r\n this._bufferViewArray = null;\r\n /** @hidden */\r\n this._bufferViewArrayArray = null;\r\n /** @hidden */\r\n this._size = 0;\r\n /** @hidden */\r\n this._extension = \"\";\r\n /** @hidden */\r\n this._files = null;\r\n /** @hidden */\r\n this._workingCanvas = null;\r\n /** @hidden */\r\n this._workingContext = null;\r\n /** @hidden */\r\n this._framebuffer = null;\r\n /** @hidden */\r\n this._depthStencilBuffer = null;\r\n /** @hidden */\r\n this._MSAAFramebuffer = null;\r\n /** @hidden */\r\n this._MSAARenderBuffer = null;\r\n /** @hidden */\r\n this._attachments = null;\r\n /** @hidden */\r\n this._cachedCoordinatesMode = null;\r\n /** @hidden */\r\n this._cachedWrapU = null;\r\n /** @hidden */\r\n this._cachedWrapV = null;\r\n /** @hidden */\r\n this._cachedWrapR = null;\r\n /** @hidden */\r\n this._cachedAnisotropicFilteringLevel = null;\r\n /** @hidden */\r\n this._isDisabled = false;\r\n /** @hidden */\r\n this._compression = null;\r\n /** @hidden */\r\n this._generateStencilBuffer = false;\r\n /** @hidden */\r\n this._generateDepthBuffer = false;\r\n /** @hidden */\r\n this._comparisonFunction = 0;\r\n /** @hidden */\r\n this._sphericalPolynomial = null;\r\n /** @hidden */\r\n this._lodGenerationScale = 0;\r\n /** @hidden */\r\n this._lodGenerationOffset = 0;\r\n // Multiview\r\n /** @hidden */\r\n this._colorTextureArray = null;\r\n /** @hidden */\r\n this._depthStencilTextureArray = null;\r\n // The following three fields helps sharing generated fixed LODs for texture filtering\r\n // In environment not supporting the textureLOD extension like EDGE. They are for internal use only.\r\n // They are at the level of the gl texture to benefit from the cache.\r\n /** @hidden */\r\n this._lodTextureHigh = null;\r\n /** @hidden */\r\n this._lodTextureMid = null;\r\n /** @hidden */\r\n this._lodTextureLow = null;\r\n /** @hidden */\r\n this._isRGBD = false;\r\n /** @hidden */\r\n this._linearSpecularLOD = false;\r\n /** @hidden */\r\n this._irradianceTexture = null;\r\n /** @hidden */\r\n this._webGLTexture = null;\r\n /** @hidden */\r\n this._references = 1;\r\n this._engine = engine;\r\n this._dataSource = dataSource;\r\n if (!delayAllocation) {\r\n this._webGLTexture = engine._createTexture();\r\n }\r\n }\r\n /**\r\n * Gets the Engine the texture belongs to.\r\n * @returns The babylon engine\r\n */\r\n InternalTexture.prototype.getEngine = function () {\r\n return this._engine;\r\n };\r\n Object.defineProperty(InternalTexture.prototype, \"dataSource\", {\r\n /**\r\n * Gets the data source type of the texture (can be one of the InternalTexture.DATASOURCE_XXXX)\r\n */\r\n get: function () {\r\n return this._dataSource;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Increments the number of references (ie. the number of Texture that point to it)\r\n */\r\n InternalTexture.prototype.incrementReferences = function () {\r\n this._references++;\r\n };\r\n /**\r\n * Change the size of the texture (not the size of the content)\r\n * @param width defines the new width\r\n * @param height defines the new height\r\n * @param depth defines the new depth (1 by default)\r\n */\r\n InternalTexture.prototype.updateSize = function (width, height, depth) {\r\n if (depth === void 0) { depth = 1; }\r\n this.width = width;\r\n this.height = height;\r\n this.depth = depth;\r\n this.baseWidth = width;\r\n this.baseHeight = height;\r\n this.baseDepth = depth;\r\n this._size = width * height * depth;\r\n };\r\n /** @hidden */\r\n InternalTexture.prototype._rebuild = function () {\r\n var _this = this;\r\n var proxy;\r\n this.isReady = false;\r\n this._cachedCoordinatesMode = null;\r\n this._cachedWrapU = null;\r\n this._cachedWrapV = null;\r\n this._cachedAnisotropicFilteringLevel = null;\r\n switch (this._dataSource) {\r\n case InternalTexture.DATASOURCE_TEMP:\r\n return;\r\n case InternalTexture.DATASOURCE_URL:\r\n proxy = this._engine.createTexture(this.url, !this.generateMipMaps, this.invertY, null, this.samplingMode, function () {\r\n proxy._swapAndDie(_this);\r\n _this.isReady = true;\r\n }, null, this._buffer, undefined, this.format);\r\n return;\r\n case InternalTexture.DATASOURCE_RAW:\r\n proxy = this._engine.createRawTexture(this._bufferView, this.baseWidth, this.baseHeight, this.format, this.generateMipMaps, this.invertY, this.samplingMode, this._compression);\r\n proxy._swapAndDie(this);\r\n this.isReady = true;\r\n return;\r\n case InternalTexture.DATASOURCE_RAW3D:\r\n proxy = this._engine.createRawTexture3D(this._bufferView, this.baseWidth, this.baseHeight, this.baseDepth, this.format, this.generateMipMaps, this.invertY, this.samplingMode, this._compression);\r\n proxy._swapAndDie(this);\r\n this.isReady = true;\r\n return;\r\n case InternalTexture.DATASOURCE_DYNAMIC:\r\n proxy = this._engine.createDynamicTexture(this.baseWidth, this.baseHeight, this.generateMipMaps, this.samplingMode);\r\n proxy._swapAndDie(this);\r\n this._engine.updateDynamicTexture(this, this._engine.getRenderingCanvas(), this.invertY, undefined, undefined, true);\r\n // The engine will make sure to update content so no need to flag it as isReady = true\r\n return;\r\n case InternalTexture.DATASOURCE_RENDERTARGET:\r\n var options = new RenderTargetCreationOptions();\r\n options.generateDepthBuffer = this._generateDepthBuffer;\r\n options.generateMipMaps = this.generateMipMaps;\r\n options.generateStencilBuffer = this._generateStencilBuffer;\r\n options.samplingMode = this.samplingMode;\r\n options.type = this.type;\r\n if (this.isCube) {\r\n proxy = this._engine.createRenderTargetCubeTexture(this.width, options);\r\n }\r\n else {\r\n var size = {\r\n width: this.width,\r\n height: this.height\r\n };\r\n proxy = this._engine.createRenderTargetTexture(size, options);\r\n }\r\n proxy._swapAndDie(this);\r\n this.isReady = true;\r\n return;\r\n case InternalTexture.DATASOURCE_DEPTHTEXTURE:\r\n var depthTextureOptions = {\r\n bilinearFiltering: this.samplingMode !== Constants.TEXTURE_BILINEAR_SAMPLINGMODE,\r\n comparisonFunction: this._comparisonFunction,\r\n generateStencil: this._generateStencilBuffer,\r\n isCube: this.isCube\r\n };\r\n proxy = this._engine.createDepthStencilTexture({ width: this.width, height: this.height }, depthTextureOptions);\r\n proxy._swapAndDie(this);\r\n this.isReady = true;\r\n return;\r\n case InternalTexture.DATASOURCE_CUBE:\r\n proxy = this._engine.createCubeTexture(this.url, null, this._files, !this.generateMipMaps, function () {\r\n proxy._swapAndDie(_this);\r\n _this.isReady = true;\r\n }, null, this.format, this._extension);\r\n return;\r\n case InternalTexture.DATASOURCE_CUBERAW:\r\n proxy = this._engine.createRawCubeTexture(this._bufferViewArray, this.width, this.format, this.type, this.generateMipMaps, this.invertY, this.samplingMode, this._compression);\r\n proxy._swapAndDie(this);\r\n this.isReady = true;\r\n return;\r\n case InternalTexture.DATASOURCE_CUBERAW_RGBD:\r\n proxy = this._engine.createRawCubeTexture(null, this.width, this.format, this.type, this.generateMipMaps, this.invertY, this.samplingMode, this._compression);\r\n InternalTexture._UpdateRGBDAsync(proxy, this._bufferViewArrayArray, this._sphericalPolynomial, this._lodGenerationScale, this._lodGenerationOffset).then(function () {\r\n proxy._swapAndDie(_this);\r\n _this.isReady = true;\r\n });\r\n return;\r\n case InternalTexture.DATASOURCE_CUBEPREFILTERED:\r\n proxy = this._engine.createPrefilteredCubeTexture(this.url, null, this._lodGenerationScale, this._lodGenerationOffset, function (proxy) {\r\n if (proxy) {\r\n proxy._swapAndDie(_this);\r\n }\r\n _this.isReady = true;\r\n }, null, this.format, this._extension);\r\n proxy._sphericalPolynomial = this._sphericalPolynomial;\r\n return;\r\n }\r\n };\r\n /** @hidden */\r\n InternalTexture.prototype._swapAndDie = function (target) {\r\n target._webGLTexture = this._webGLTexture;\r\n target._isRGBD = this._isRGBD;\r\n if (this._framebuffer) {\r\n target._framebuffer = this._framebuffer;\r\n }\r\n if (this._depthStencilBuffer) {\r\n target._depthStencilBuffer = this._depthStencilBuffer;\r\n }\r\n if (this._lodTextureHigh) {\r\n if (target._lodTextureHigh) {\r\n target._lodTextureHigh.dispose();\r\n }\r\n target._lodTextureHigh = this._lodTextureHigh;\r\n }\r\n if (this._lodTextureMid) {\r\n if (target._lodTextureMid) {\r\n target._lodTextureMid.dispose();\r\n }\r\n target._lodTextureMid = this._lodTextureMid;\r\n }\r\n if (this._lodTextureLow) {\r\n if (target._lodTextureLow) {\r\n target._lodTextureLow.dispose();\r\n }\r\n target._lodTextureLow = this._lodTextureLow;\r\n }\r\n if (this._irradianceTexture) {\r\n if (target._irradianceTexture) {\r\n target._irradianceTexture.dispose();\r\n }\r\n target._irradianceTexture = this._irradianceTexture;\r\n }\r\n var cache = this._engine.getLoadedTexturesCache();\r\n var index = cache.indexOf(this);\r\n if (index !== -1) {\r\n cache.splice(index, 1);\r\n }\r\n var index = cache.indexOf(target);\r\n if (index === -1) {\r\n cache.push(target);\r\n }\r\n };\r\n /**\r\n * Dispose the current allocated resources\r\n */\r\n InternalTexture.prototype.dispose = function () {\r\n if (!this._webGLTexture) {\r\n return;\r\n }\r\n this._references--;\r\n if (this._references === 0) {\r\n this._engine._releaseTexture(this);\r\n this._webGLTexture = null;\r\n }\r\n };\r\n /** @hidden */\r\n InternalTexture._UpdateRGBDAsync = function (internalTexture, data, sphericalPolynomial, lodScale, lodOffset) {\r\n throw _DevTools.WarnImport(\"environmentTextureTools\");\r\n };\r\n /**\r\n * The source of the texture data is unknown\r\n */\r\n InternalTexture.DATASOURCE_UNKNOWN = 0;\r\n /**\r\n * Texture data comes from an URL\r\n */\r\n InternalTexture.DATASOURCE_URL = 1;\r\n /**\r\n * Texture data is only used for temporary storage\r\n */\r\n InternalTexture.DATASOURCE_TEMP = 2;\r\n /**\r\n * Texture data comes from raw data (ArrayBuffer)\r\n */\r\n InternalTexture.DATASOURCE_RAW = 3;\r\n /**\r\n * Texture content is dynamic (video or dynamic texture)\r\n */\r\n InternalTexture.DATASOURCE_DYNAMIC = 4;\r\n /**\r\n * Texture content is generated by rendering to it\r\n */\r\n InternalTexture.DATASOURCE_RENDERTARGET = 5;\r\n /**\r\n * Texture content is part of a multi render target process\r\n */\r\n InternalTexture.DATASOURCE_MULTIRENDERTARGET = 6;\r\n /**\r\n * Texture data comes from a cube data file\r\n */\r\n InternalTexture.DATASOURCE_CUBE = 7;\r\n /**\r\n * Texture data comes from a raw cube data\r\n */\r\n InternalTexture.DATASOURCE_CUBERAW = 8;\r\n /**\r\n * Texture data come from a prefiltered cube data file\r\n */\r\n InternalTexture.DATASOURCE_CUBEPREFILTERED = 9;\r\n /**\r\n * Texture content is raw 3D data\r\n */\r\n InternalTexture.DATASOURCE_RAW3D = 10;\r\n /**\r\n * Texture content is a depth texture\r\n */\r\n InternalTexture.DATASOURCE_DEPTHTEXTURE = 11;\r\n /**\r\n * Texture data comes from a raw cube data encoded with RGBD\r\n */\r\n InternalTexture.DATASOURCE_CUBERAW_RGBD = 12;\r\n return InternalTexture;\r\n}());\r\nexport { InternalTexture };\r\n//# sourceMappingURL=internalTexture.js.map"
  8563. },
  8564. {
  8565. "id": "../../.temp/packageES6Dev/core/Materials/Textures/renderTargetCreationOptions.js",
  8566. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\Textures\\renderTargetCreationOptions.js",
  8567. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/renderTargetCreationOptions.js",
  8568. "index": 33,
  8569. "index2": 30,
  8570. "size": 329,
  8571. "cacheable": true,
  8572. "built": true,
  8573. "optional": false,
  8574. "prefetched": false,
  8575. "chunks": [
  8576. "thinEngineOnly"
  8577. ],
  8578. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\Textures\\internalTexture.js",
  8579. "issuerId": "../../.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  8580. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  8581. "issuerPath": [
  8582. {
  8583. "id": "./thinEngineOnly.ts",
  8584. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  8585. "name": "./thinEngineOnly.ts",
  8586. "profile": {
  8587. "factory": 42,
  8588. "building": 2115
  8589. }
  8590. },
  8591. {
  8592. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8593. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8594. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8595. "profile": {
  8596. "factory": 6,
  8597. "building": 110
  8598. }
  8599. },
  8600. {
  8601. "id": "../../.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  8602. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\Textures\\internalTexture.js",
  8603. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  8604. "profile": {
  8605. "factory": 59,
  8606. "building": 41,
  8607. "dependencies": 4
  8608. }
  8609. }
  8610. ],
  8611. "profile": {
  8612. "factory": 43,
  8613. "building": 9
  8614. },
  8615. "failed": false,
  8616. "errors": 0,
  8617. "warnings": 0,
  8618. "assets": [],
  8619. "reasons": [
  8620. {
  8621. "moduleId": "../../.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  8622. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\Textures\\internalTexture.js",
  8623. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  8624. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  8625. "type": "harmony side effect evaluation",
  8626. "userRequest": "../../Materials/Textures/renderTargetCreationOptions",
  8627. "loc": "2:0-99"
  8628. },
  8629. {
  8630. "moduleId": "../../.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  8631. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\Textures\\internalTexture.js",
  8632. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  8633. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  8634. "type": "harmony import specifier",
  8635. "userRequest": "../../Materials/Textures/renderTargetCreationOptions",
  8636. "loc": "255:34-61"
  8637. }
  8638. ],
  8639. "providedExports": [
  8640. "RenderTargetCreationOptions"
  8641. ],
  8642. "optimizationBailout": [],
  8643. "depth": 3,
  8644. "source": "/**\r\n * Define options used to create a render target texture\r\n */\r\nvar RenderTargetCreationOptions = /** @class */ (function () {\r\n function RenderTargetCreationOptions() {\r\n }\r\n return RenderTargetCreationOptions;\r\n}());\r\nexport { RenderTargetCreationOptions };\r\n//# sourceMappingURL=renderTargetCreationOptions.js.map"
  8645. },
  8646. {
  8647. "id": "../../.temp/packageES6Dev/core/Materials/effect.js",
  8648. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  8649. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  8650. "index": 4,
  8651. "index2": 22,
  8652. "size": 50320,
  8653. "cacheable": true,
  8654. "built": true,
  8655. "optional": false,
  8656. "prefetched": false,
  8657. "chunks": [
  8658. "thinEngineOnly"
  8659. ],
  8660. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8661. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8662. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8663. "issuerPath": [
  8664. {
  8665. "id": "./thinEngineOnly.ts",
  8666. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  8667. "name": "./thinEngineOnly.ts",
  8668. "profile": {
  8669. "factory": 42,
  8670. "building": 2115
  8671. }
  8672. },
  8673. {
  8674. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8675. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8676. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8677. "profile": {
  8678. "factory": 6,
  8679. "building": 110
  8680. }
  8681. }
  8682. ],
  8683. "profile": {
  8684. "factory": 59,
  8685. "building": 41,
  8686. "dependencies": 4
  8687. },
  8688. "failed": false,
  8689. "errors": 0,
  8690. "warnings": 0,
  8691. "assets": [],
  8692. "reasons": [
  8693. {
  8694. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8695. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8696. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8697. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8698. "type": "harmony side effect evaluation",
  8699. "userRequest": "../Materials/effect",
  8700. "loc": "3:0-45"
  8701. },
  8702. {
  8703. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8704. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8705. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8706. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8707. "type": "harmony import specifier",
  8708. "userRequest": "../Materials/effect",
  8709. "loc": "349:19-25"
  8710. },
  8711. {
  8712. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8713. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8714. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8715. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8716. "type": "harmony import specifier",
  8717. "userRequest": "../Materials/effect",
  8718. "loc": "352:12-18"
  8719. },
  8720. {
  8721. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8722. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8723. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8724. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8725. "type": "harmony import specifier",
  8726. "userRequest": "../Materials/effect",
  8727. "loc": "491:8-14"
  8728. },
  8729. {
  8730. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8731. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8732. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8733. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8734. "type": "harmony import specifier",
  8735. "userRequest": "../Materials/effect",
  8736. "loc": "1697:25-31"
  8737. },
  8738. {
  8739. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8740. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8741. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8742. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8743. "type": "harmony import specifier",
  8744. "userRequest": "../Materials/effect",
  8745. "loc": "3343:8-14"
  8746. }
  8747. ],
  8748. "providedExports": [
  8749. "EffectFallbacks",
  8750. "EffectCreationOptions",
  8751. "Effect"
  8752. ],
  8753. "optimizationBailout": [],
  8754. "depth": 2,
  8755. "source": "import { Observable } from \"../Misc/observable\";\r\nimport { Constants } from \"../Engines/constants\";\r\nimport { DomManagement } from \"../Misc/domManagement\";\r\nimport { Logger } from \"../Misc/logger\";\r\nimport { ShaderProcessor } from '../Engines/Processors/shaderProcessor';\r\n/**\r\n * EffectFallbacks can be used to add fallbacks (properties to disable) to certain properties when desired to improve performance.\r\n * (Eg. Start at high quality with reflection and fog, if fps is low, remove reflection, if still low remove fog)\r\n */\r\nvar EffectFallbacks = /** @class */ (function () {\r\n function EffectFallbacks() {\r\n this._defines = {};\r\n this._currentRank = 32;\r\n this._maxRank = -1;\r\n this._mesh = null;\r\n }\r\n /**\r\n * Removes the fallback from the bound mesh.\r\n */\r\n EffectFallbacks.prototype.unBindMesh = function () {\r\n this._mesh = null;\r\n };\r\n /**\r\n * Adds a fallback on the specified property.\r\n * @param rank The rank of the fallback (Lower ranks will be fallbacked to first)\r\n * @param define The name of the define in the shader\r\n */\r\n EffectFallbacks.prototype.addFallback = function (rank, define) {\r\n if (!this._defines[rank]) {\r\n if (rank < this._currentRank) {\r\n this._currentRank = rank;\r\n }\r\n if (rank > this._maxRank) {\r\n this._maxRank = rank;\r\n }\r\n this._defines[rank] = new Array();\r\n }\r\n this._defines[rank].push(define);\r\n };\r\n /**\r\n * Sets the mesh to use CPU skinning when needing to fallback.\r\n * @param rank The rank of the fallback (Lower ranks will be fallbacked to first)\r\n * @param mesh The mesh to use the fallbacks.\r\n */\r\n EffectFallbacks.prototype.addCPUSkinningFallback = function (rank, mesh) {\r\n this._mesh = mesh;\r\n if (rank < this._currentRank) {\r\n this._currentRank = rank;\r\n }\r\n if (rank > this._maxRank) {\r\n this._maxRank = rank;\r\n }\r\n };\r\n Object.defineProperty(EffectFallbacks.prototype, \"hasMoreFallbacks\", {\r\n /**\r\n * Checks to see if more fallbacks are still availible.\r\n */\r\n get: function () {\r\n return this._currentRank <= this._maxRank;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Removes the defines that should be removed when falling back.\r\n * @param currentDefines defines the current define statements for the shader.\r\n * @param effect defines the current effect we try to compile\r\n * @returns The resulting defines with defines of the current rank removed.\r\n */\r\n EffectFallbacks.prototype.reduce = function (currentDefines, effect) {\r\n // First we try to switch to CPU skinning\r\n if (this._mesh && this._mesh.computeBonesUsingShaders && this._mesh.numBoneInfluencers > 0) {\r\n this._mesh.computeBonesUsingShaders = false;\r\n currentDefines = currentDefines.replace(\"#define NUM_BONE_INFLUENCERS \" + this._mesh.numBoneInfluencers, \"#define NUM_BONE_INFLUENCERS 0\");\r\n effect._bonesComputationForcedToCPU = true;\r\n var scene = this._mesh.getScene();\r\n for (var index = 0; index < scene.meshes.length; index++) {\r\n var otherMesh = scene.meshes[index];\r\n if (!otherMesh.material) {\r\n if (!this._mesh.material && otherMesh.computeBonesUsingShaders && otherMesh.numBoneInfluencers > 0) {\r\n otherMesh.computeBonesUsingShaders = false;\r\n }\r\n continue;\r\n }\r\n if (!otherMesh.computeBonesUsingShaders || otherMesh.numBoneInfluencers === 0) {\r\n continue;\r\n }\r\n if (otherMesh.material.getEffect() === effect) {\r\n otherMesh.computeBonesUsingShaders = false;\r\n }\r\n else if (otherMesh.subMeshes) {\r\n for (var _i = 0, _a = otherMesh.subMeshes; _i < _a.length; _i++) {\r\n var subMesh = _a[_i];\r\n var subMeshEffect = subMesh.effect;\r\n if (subMeshEffect === effect) {\r\n otherMesh.computeBonesUsingShaders = false;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n var currentFallbacks = this._defines[this._currentRank];\r\n if (currentFallbacks) {\r\n for (var index = 0; index < currentFallbacks.length; index++) {\r\n currentDefines = currentDefines.replace(\"#define \" + currentFallbacks[index], \"\");\r\n }\r\n }\r\n this._currentRank++;\r\n }\r\n return currentDefines;\r\n };\r\n return EffectFallbacks;\r\n}());\r\nexport { EffectFallbacks };\r\n/**\r\n * Options to be used when creating an effect.\r\n */\r\nvar EffectCreationOptions = /** @class */ (function () {\r\n function EffectCreationOptions() {\r\n }\r\n return EffectCreationOptions;\r\n}());\r\nexport { EffectCreationOptions };\r\n/**\r\n * Effect containing vertex and fragment shader that can be executed on an object.\r\n */\r\nvar Effect = /** @class */ (function () {\r\n /**\r\n * Instantiates an effect.\r\n * An effect can be used to create/manage/execute vertex and fragment shaders.\r\n * @param baseName Name of the effect.\r\n * @param attributesNamesOrOptions List of attribute names that will be passed to the shader or set of all options to create the effect.\r\n * @param uniformsNamesOrEngine List of uniform variable names that will be passed to the shader or the engine that will be used to render effect.\r\n * @param samplers List of sampler variables that will be passed to the shader.\r\n * @param engine Engine to be used to render the effect\r\n * @param defines Define statements to be added to the shader.\r\n * @param fallbacks Possible fallbacks for this effect to improve performance when needed.\r\n * @param onCompiled Callback that will be called when the shader is compiled.\r\n * @param onError Callback that will be called if an error occurs during shader compilation.\r\n * @param indexParameters Parameters to be used with Babylons include syntax to iterate over an array (eg. {lights: 10})\r\n */\r\n function Effect(baseName, attributesNamesOrOptions, uniformsNamesOrEngine, samplers, engine, defines, fallbacks, onCompiled, onError, indexParameters) {\r\n var _this = this;\r\n if (samplers === void 0) { samplers = null; }\r\n if (defines === void 0) { defines = null; }\r\n if (fallbacks === void 0) { fallbacks = null; }\r\n if (onCompiled === void 0) { onCompiled = null; }\r\n if (onError === void 0) { onError = null; }\r\n /**\r\n * Name of the effect.\r\n */\r\n this.name = null;\r\n /**\r\n * String container all the define statements that should be set on the shader.\r\n */\r\n this.defines = \"\";\r\n /**\r\n * Callback that will be called when the shader is compiled.\r\n */\r\n this.onCompiled = null;\r\n /**\r\n * Callback that will be called if an error occurs during shader compilation.\r\n */\r\n this.onError = null;\r\n /**\r\n * Callback that will be called when effect is bound.\r\n */\r\n this.onBind = null;\r\n /**\r\n * Unique ID of the effect.\r\n */\r\n this.uniqueId = 0;\r\n /**\r\n * Observable that will be called when the shader is compiled.\r\n * It is recommended to use executeWhenCompile() or to make sure that scene.isReady() is called to get this observable raised.\r\n */\r\n this.onCompileObservable = new Observable();\r\n /**\r\n * Observable that will be called if an error occurs during shader compilation.\r\n */\r\n this.onErrorObservable = new Observable();\r\n /** @hidden */\r\n this._onBindObservable = null;\r\n /** @hidden */\r\n this._bonesComputationForcedToCPU = false;\r\n this._uniformBuffersNames = {};\r\n this._samplers = {};\r\n this._isReady = false;\r\n this._compilationError = \"\";\r\n this._uniforms = {};\r\n /**\r\n * Key for the effect.\r\n * @hidden\r\n */\r\n this._key = \"\";\r\n this._fallbacks = null;\r\n this._vertexSourceCode = \"\";\r\n this._fragmentSourceCode = \"\";\r\n this._vertexSourceCodeOverride = \"\";\r\n this._fragmentSourceCodeOverride = \"\";\r\n this._transformFeedbackVaryings = null;\r\n /**\r\n * Compiled shader to webGL program.\r\n * @hidden\r\n */\r\n this._pipelineContext = null;\r\n this._valueCache = {};\r\n this.name = baseName;\r\n if (attributesNamesOrOptions.attributes) {\r\n var options = attributesNamesOrOptions;\r\n this._engine = uniformsNamesOrEngine;\r\n this._attributesNames = options.attributes;\r\n this._uniformsNames = options.uniformsNames.concat(options.samplers);\r\n this._samplerList = options.samplers.slice();\r\n this.defines = options.defines;\r\n this.onError = options.onError;\r\n this.onCompiled = options.onCompiled;\r\n this._fallbacks = options.fallbacks;\r\n this._indexParameters = options.indexParameters;\r\n this._transformFeedbackVaryings = options.transformFeedbackVaryings;\r\n if (options.uniformBuffersNames) {\r\n for (var i = 0; i < options.uniformBuffersNames.length; i++) {\r\n this._uniformBuffersNames[options.uniformBuffersNames[i]] = i;\r\n }\r\n }\r\n }\r\n else {\r\n this._engine = engine;\r\n this.defines = (defines == null ? \"\" : defines);\r\n this._uniformsNames = uniformsNamesOrEngine.concat(samplers);\r\n this._samplerList = samplers ? samplers.slice() : [];\r\n this._attributesNames = attributesNamesOrOptions;\r\n this.onError = onError;\r\n this.onCompiled = onCompiled;\r\n this._indexParameters = indexParameters;\r\n this._fallbacks = fallbacks;\r\n }\r\n this.uniqueId = Effect._uniqueIdSeed++;\r\n var vertexSource;\r\n var fragmentSource;\r\n if (baseName.vertexSource) {\r\n vertexSource = \"source:\" + baseName.vertexSource;\r\n }\r\n else if (baseName.vertexElement) {\r\n vertexSource = document.getElementById(baseName.vertexElement);\r\n if (!vertexSource) {\r\n vertexSource = baseName.vertexElement;\r\n }\r\n }\r\n else {\r\n vertexSource = baseName.vertex || baseName;\r\n }\r\n if (baseName.fragmentSource) {\r\n fragmentSource = \"source:\" + baseName.fragmentSource;\r\n }\r\n else if (baseName.fragmentElement) {\r\n fragmentSource = document.getElementById(baseName.fragmentElement);\r\n if (!fragmentSource) {\r\n fragmentSource = baseName.fragmentElement;\r\n }\r\n }\r\n else {\r\n fragmentSource = baseName.fragment || baseName;\r\n }\r\n var processorOptions = {\r\n defines: this.defines.split(\"\\n\"),\r\n indexParameters: this._indexParameters,\r\n isFragment: false,\r\n shouldUseHighPrecisionShader: this._engine._shouldUseHighPrecisionShader,\r\n processor: this._engine._shaderProcessor,\r\n supportsUniformBuffers: this._engine.supportsUniformBuffers,\r\n shadersRepository: Effect.ShadersRepository,\r\n includesShadersStore: Effect.IncludesShadersStore,\r\n version: (this._engine.webGLVersion * 100).toString(),\r\n platformName: this._engine.webGLVersion >= 2 ? \"WEBGL2\" : \"WEBGL1\"\r\n };\r\n this._loadVertexShader(vertexSource, function (vertexCode) {\r\n _this._loadFragmentShader(fragmentSource, function (fragmentCode) {\r\n ShaderProcessor.Process(vertexCode, processorOptions, function (migratedVertexCode) {\r\n processorOptions.isFragment = true;\r\n ShaderProcessor.Process(fragmentCode, processorOptions, function (migratedFragmentCode) {\r\n _this._useFinalCode(migratedVertexCode, migratedFragmentCode, baseName);\r\n });\r\n });\r\n });\r\n });\r\n }\r\n Object.defineProperty(Effect.prototype, \"onBindObservable\", {\r\n /**\r\n * Observable that will be called when effect is bound.\r\n */\r\n get: function () {\r\n if (!this._onBindObservable) {\r\n this._onBindObservable = new Observable();\r\n }\r\n return this._onBindObservable;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Effect.prototype._useFinalCode = function (migratedVertexCode, migratedFragmentCode, baseName) {\r\n if (baseName) {\r\n var vertex = baseName.vertexElement || baseName.vertex || baseName.spectorName || baseName;\r\n var fragment = baseName.fragmentElement || baseName.fragment || baseName.spectorName || baseName;\r\n this._vertexSourceCode = \"#define SHADER_NAME vertex:\" + vertex + \"\\n\" + migratedVertexCode;\r\n this._fragmentSourceCode = \"#define SHADER_NAME fragment:\" + fragment + \"\\n\" + migratedFragmentCode;\r\n }\r\n else {\r\n this._vertexSourceCode = migratedVertexCode;\r\n this._fragmentSourceCode = migratedFragmentCode;\r\n }\r\n this._prepareEffect();\r\n };\r\n Object.defineProperty(Effect.prototype, \"key\", {\r\n /**\r\n * Unique key for this effect\r\n */\r\n get: function () {\r\n return this._key;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * If the effect has been compiled and prepared.\r\n * @returns if the effect is compiled and prepared.\r\n */\r\n Effect.prototype.isReady = function () {\r\n try {\r\n return this._isReadyInternal();\r\n }\r\n catch (_a) {\r\n return false;\r\n }\r\n };\r\n Effect.prototype._isReadyInternal = function () {\r\n if (this._isReady) {\r\n return true;\r\n }\r\n if (this._pipelineContext) {\r\n return this._pipelineContext.isReady;\r\n }\r\n return false;\r\n };\r\n /**\r\n * The engine the effect was initialized with.\r\n * @returns the engine.\r\n */\r\n Effect.prototype.getEngine = function () {\r\n return this._engine;\r\n };\r\n /**\r\n * The pipeline context for this effect\r\n * @returns the associated pipeline context\r\n */\r\n Effect.prototype.getPipelineContext = function () {\r\n return this._pipelineContext;\r\n };\r\n /**\r\n * The set of names of attribute variables for the shader.\r\n * @returns An array of attribute names.\r\n */\r\n Effect.prototype.getAttributesNames = function () {\r\n return this._attributesNames;\r\n };\r\n /**\r\n * Returns the attribute at the given index.\r\n * @param index The index of the attribute.\r\n * @returns The location of the attribute.\r\n */\r\n Effect.prototype.getAttributeLocation = function (index) {\r\n return this._attributes[index];\r\n };\r\n /**\r\n * Returns the attribute based on the name of the variable.\r\n * @param name of the attribute to look up.\r\n * @returns the attribute location.\r\n */\r\n Effect.prototype.getAttributeLocationByName = function (name) {\r\n var index = this._attributesNames.indexOf(name);\r\n return this._attributes[index];\r\n };\r\n /**\r\n * The number of attributes.\r\n * @returns the numnber of attributes.\r\n */\r\n Effect.prototype.getAttributesCount = function () {\r\n return this._attributes.length;\r\n };\r\n /**\r\n * Gets the index of a uniform variable.\r\n * @param uniformName of the uniform to look up.\r\n * @returns the index.\r\n */\r\n Effect.prototype.getUniformIndex = function (uniformName) {\r\n return this._uniformsNames.indexOf(uniformName);\r\n };\r\n /**\r\n * Returns the attribute based on the name of the variable.\r\n * @param uniformName of the uniform to look up.\r\n * @returns the location of the uniform.\r\n */\r\n Effect.prototype.getUniform = function (uniformName) {\r\n return this._uniforms[uniformName];\r\n };\r\n /**\r\n * Returns an array of sampler variable names\r\n * @returns The array of sampler variable neames.\r\n */\r\n Effect.prototype.getSamplers = function () {\r\n return this._samplerList;\r\n };\r\n /**\r\n * The error from the last compilation.\r\n * @returns the error string.\r\n */\r\n Effect.prototype.getCompilationError = function () {\r\n return this._compilationError;\r\n };\r\n /**\r\n * Adds a callback to the onCompiled observable and call the callback imediatly if already ready.\r\n * @param func The callback to be used.\r\n */\r\n Effect.prototype.executeWhenCompiled = function (func) {\r\n var _this = this;\r\n if (this.isReady()) {\r\n func(this);\r\n return;\r\n }\r\n this.onCompileObservable.add(function (effect) {\r\n func(effect);\r\n });\r\n if (!this._pipelineContext || this._pipelineContext.isAsync) {\r\n setTimeout(function () {\r\n _this._checkIsReady();\r\n }, 16);\r\n }\r\n };\r\n Effect.prototype._checkIsReady = function () {\r\n var _this = this;\r\n try {\r\n if (this._isReadyInternal()) {\r\n return;\r\n }\r\n }\r\n catch (e) {\r\n this._processCompilationErrors(e);\r\n return;\r\n }\r\n setTimeout(function () {\r\n _this._checkIsReady();\r\n }, 16);\r\n };\r\n /** @hidden */\r\n Effect.prototype._loadVertexShader = function (vertex, callback) {\r\n if (typeof (HTMLElement) !== \"undefined\") {\r\n // DOM element ?\r\n if (vertex instanceof HTMLElement) {\r\n var vertexCode = DomManagement.GetDOMTextContent(vertex);\r\n callback(vertexCode);\r\n return;\r\n }\r\n }\r\n // Direct source ?\r\n if (vertex.substr(0, 7) === \"source:\") {\r\n callback(vertex.substr(7));\r\n return;\r\n }\r\n // Base64 encoded ?\r\n if (vertex.substr(0, 7) === \"base64:\") {\r\n var vertexBinary = window.atob(vertex.substr(7));\r\n callback(vertexBinary);\r\n return;\r\n }\r\n // Is in local store ?\r\n if (Effect.ShadersStore[vertex + \"VertexShader\"]) {\r\n callback(Effect.ShadersStore[vertex + \"VertexShader\"]);\r\n return;\r\n }\r\n var vertexShaderUrl;\r\n if (vertex[0] === \".\" || vertex[0] === \"/\" || vertex.indexOf(\"http\") > -1) {\r\n vertexShaderUrl = vertex;\r\n }\r\n else {\r\n vertexShaderUrl = Effect.ShadersRepository + vertex;\r\n }\r\n // Vertex shader\r\n this._engine._loadFile(vertexShaderUrl + \".vertex.fx\", callback);\r\n };\r\n /** @hidden */\r\n Effect.prototype._loadFragmentShader = function (fragment, callback) {\r\n if (typeof (HTMLElement) !== \"undefined\") {\r\n // DOM element ?\r\n if (fragment instanceof HTMLElement) {\r\n var fragmentCode = DomManagement.GetDOMTextContent(fragment);\r\n callback(fragmentCode);\r\n return;\r\n }\r\n }\r\n // Direct source ?\r\n if (fragment.substr(0, 7) === \"source:\") {\r\n callback(fragment.substr(7));\r\n return;\r\n }\r\n // Base64 encoded ?\r\n if (fragment.substr(0, 7) === \"base64:\") {\r\n var fragmentBinary = window.atob(fragment.substr(7));\r\n callback(fragmentBinary);\r\n return;\r\n }\r\n // Is in local store ?\r\n if (Effect.ShadersStore[fragment + \"PixelShader\"]) {\r\n callback(Effect.ShadersStore[fragment + \"PixelShader\"]);\r\n return;\r\n }\r\n if (Effect.ShadersStore[fragment + \"FragmentShader\"]) {\r\n callback(Effect.ShadersStore[fragment + \"FragmentShader\"]);\r\n return;\r\n }\r\n var fragmentShaderUrl;\r\n if (fragment[0] === \".\" || fragment[0] === \"/\" || fragment.indexOf(\"http\") > -1) {\r\n fragmentShaderUrl = fragment;\r\n }\r\n else {\r\n fragmentShaderUrl = Effect.ShadersRepository + fragment;\r\n }\r\n // Fragment shader\r\n this._engine._loadFile(fragmentShaderUrl + \".fragment.fx\", callback);\r\n };\r\n /** @hidden */\r\n Effect.prototype._dumpShadersSource = function (vertexCode, fragmentCode, defines) {\r\n // Rebuild shaders source code\r\n var shaderVersion = (this._engine.webGLVersion > 1) ? \"#version 300 es\\n#define WEBGL2 \\n\" : \"\";\r\n var prefix = shaderVersion + (defines ? defines + \"\\n\" : \"\");\r\n vertexCode = prefix + vertexCode;\r\n fragmentCode = prefix + fragmentCode;\r\n // Number lines of shaders source code\r\n var i = 2;\r\n var regex = /\\n/gm;\r\n var formattedVertexCode = \"\\n1\\t\" + vertexCode.replace(regex, function () { return \"\\n\" + (i++) + \"\\t\"; });\r\n i = 2;\r\n var formattedFragmentCode = \"\\n1\\t\" + fragmentCode.replace(regex, function () { return \"\\n\" + (i++) + \"\\t\"; });\r\n // Dump shaders name and formatted source code\r\n if (this.name.vertexElement) {\r\n Logger.Error(\"Vertex shader: \" + this.name.vertexElement + formattedVertexCode);\r\n Logger.Error(\"Fragment shader: \" + this.name.fragmentElement + formattedFragmentCode);\r\n }\r\n else if (this.name.vertex) {\r\n Logger.Error(\"Vertex shader: \" + this.name.vertex + formattedVertexCode);\r\n Logger.Error(\"Fragment shader: \" + this.name.fragment + formattedFragmentCode);\r\n }\r\n else {\r\n Logger.Error(\"Vertex shader: \" + this.name + formattedVertexCode);\r\n Logger.Error(\"Fragment shader: \" + this.name + formattedFragmentCode);\r\n }\r\n };\r\n /**\r\n * Recompiles the webGL program\r\n * @param vertexSourceCode The source code for the vertex shader.\r\n * @param fragmentSourceCode The source code for the fragment shader.\r\n * @param onCompiled Callback called when completed.\r\n * @param onError Callback called on error.\r\n * @hidden\r\n */\r\n Effect.prototype._rebuildProgram = function (vertexSourceCode, fragmentSourceCode, onCompiled, onError) {\r\n var _this = this;\r\n this._isReady = false;\r\n this._vertexSourceCodeOverride = vertexSourceCode;\r\n this._fragmentSourceCodeOverride = fragmentSourceCode;\r\n this.onError = function (effect, error) {\r\n if (onError) {\r\n onError(error);\r\n }\r\n };\r\n this.onCompiled = function () {\r\n var scenes = _this.getEngine().scenes;\r\n for (var i = 0; i < scenes.length; i++) {\r\n scenes[i].markAllMaterialsAsDirty(Constants.MATERIAL_AllDirtyFlag);\r\n }\r\n _this._pipelineContext._handlesSpectorRebuildCallback(onCompiled);\r\n };\r\n this._fallbacks = null;\r\n this._prepareEffect();\r\n };\r\n /**\r\n * Prepares the effect\r\n * @hidden\r\n */\r\n Effect.prototype._prepareEffect = function () {\r\n var _this = this;\r\n var attributesNames = this._attributesNames;\r\n var defines = this.defines;\r\n this._valueCache = {};\r\n var previousPipelineContext = this._pipelineContext;\r\n try {\r\n var engine_1 = this._engine;\r\n this._pipelineContext = engine_1.createPipelineContext();\r\n var rebuildRebind = this._rebuildProgram.bind(this);\r\n if (this._vertexSourceCodeOverride && this._fragmentSourceCodeOverride) {\r\n engine_1._preparePipelineContext(this._pipelineContext, this._vertexSourceCodeOverride, this._fragmentSourceCodeOverride, true, rebuildRebind, null, this._transformFeedbackVaryings);\r\n }\r\n else {\r\n engine_1._preparePipelineContext(this._pipelineContext, this._vertexSourceCode, this._fragmentSourceCode, false, rebuildRebind, defines, this._transformFeedbackVaryings);\r\n }\r\n engine_1._executeWhenRenderingStateIsCompiled(this._pipelineContext, function () {\r\n if (engine_1.supportsUniformBuffers) {\r\n for (var name in _this._uniformBuffersNames) {\r\n _this.bindUniformBlock(name, _this._uniformBuffersNames[name]);\r\n }\r\n }\r\n var uniforms = engine_1.getUniforms(_this._pipelineContext, _this._uniformsNames);\r\n uniforms.forEach(function (uniform, index) {\r\n _this._uniforms[_this._uniformsNames[index]] = uniform;\r\n });\r\n _this._attributes = engine_1.getAttributes(_this._pipelineContext, attributesNames);\r\n var index;\r\n for (index = 0; index < _this._samplerList.length; index++) {\r\n var sampler = _this.getUniform(_this._samplerList[index]);\r\n if (sampler == null) {\r\n _this._samplerList.splice(index, 1);\r\n index--;\r\n }\r\n }\r\n _this._samplerList.forEach(function (name, index) {\r\n _this._samplers[name] = index;\r\n });\r\n engine_1.bindSamplers(_this);\r\n _this._compilationError = \"\";\r\n _this._isReady = true;\r\n if (_this.onCompiled) {\r\n _this.onCompiled(_this);\r\n }\r\n _this.onCompileObservable.notifyObservers(_this);\r\n _this.onCompileObservable.clear();\r\n // Unbind mesh reference in fallbacks\r\n if (_this._fallbacks) {\r\n _this._fallbacks.unBindMesh();\r\n }\r\n if (previousPipelineContext) {\r\n _this.getEngine()._deletePipelineContext(previousPipelineContext);\r\n }\r\n });\r\n if (this._pipelineContext.isAsync) {\r\n this._checkIsReady();\r\n }\r\n }\r\n catch (e) {\r\n this._processCompilationErrors(e, previousPipelineContext);\r\n }\r\n };\r\n Effect.prototype._processCompilationErrors = function (e, previousPipelineContext) {\r\n if (previousPipelineContext === void 0) { previousPipelineContext = null; }\r\n this._compilationError = e.message;\r\n var attributesNames = this._attributesNames;\r\n var fallbacks = this._fallbacks;\r\n // Let's go through fallbacks then\r\n Logger.Error(\"Unable to compile effect:\");\r\n Logger.Error(\"Uniforms: \" + this._uniformsNames.map(function (uniform) {\r\n return \" \" + uniform;\r\n }));\r\n Logger.Error(\"Attributes: \" + attributesNames.map(function (attribute) {\r\n return \" \" + attribute;\r\n }));\r\n Logger.Error(\"Defines:\\r\\n\" + this.defines);\r\n Logger.Error(\"Error: \" + this._compilationError);\r\n if (previousPipelineContext) {\r\n this._pipelineContext = previousPipelineContext;\r\n this._isReady = true;\r\n if (this.onError) {\r\n this.onError(this, this._compilationError);\r\n }\r\n this.onErrorObservable.notifyObservers(this);\r\n }\r\n if (fallbacks) {\r\n this._pipelineContext = null;\r\n if (fallbacks.hasMoreFallbacks) {\r\n Logger.Error(\"Trying next fallback.\");\r\n this.defines = fallbacks.reduce(this.defines, this);\r\n this._prepareEffect();\r\n }\r\n else { // Sorry we did everything we can\r\n if (this.onError) {\r\n this.onError(this, this._compilationError);\r\n }\r\n this.onErrorObservable.notifyObservers(this);\r\n this.onErrorObservable.clear();\r\n // Unbind mesh reference in fallbacks\r\n if (this._fallbacks) {\r\n this._fallbacks.unBindMesh();\r\n }\r\n }\r\n }\r\n };\r\n Object.defineProperty(Effect.prototype, \"isSupported\", {\r\n /**\r\n * Checks if the effect is supported. (Must be called after compilation)\r\n */\r\n get: function () {\r\n return this._compilationError === \"\";\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Binds a texture to the engine to be used as output of the shader.\r\n * @param channel Name of the output variable.\r\n * @param texture Texture to bind.\r\n * @hidden\r\n */\r\n Effect.prototype._bindTexture = function (channel, texture) {\r\n this._engine._bindTexture(this._samplers[channel], texture);\r\n };\r\n /**\r\n * Sets a texture on the engine to be used in the shader.\r\n * @param channel Name of the sampler variable.\r\n * @param texture Texture to set.\r\n */\r\n Effect.prototype.setTexture = function (channel, texture) {\r\n this._engine.setTexture(this._samplers[channel], this._uniforms[channel], texture);\r\n };\r\n /**\r\n * Sets a depth stencil texture from a render target on the engine to be used in the shader.\r\n * @param channel Name of the sampler variable.\r\n * @param texture Texture to set.\r\n */\r\n Effect.prototype.setDepthStencilTexture = function (channel, texture) {\r\n this._engine.setDepthStencilTexture(this._samplers[channel], this._uniforms[channel], texture);\r\n };\r\n /**\r\n * Sets an array of textures on the engine to be used in the shader.\r\n * @param channel Name of the variable.\r\n * @param textures Textures to set.\r\n */\r\n Effect.prototype.setTextureArray = function (channel, textures) {\r\n var exName = channel + \"Ex\";\r\n if (this._samplerList.indexOf(exName + \"0\") === -1) {\r\n var initialPos = this._samplerList.indexOf(channel);\r\n for (var index = 1; index < textures.length; index++) {\r\n var currentExName = exName + (index - 1).toString();\r\n this._samplerList.splice(initialPos + index, 0, currentExName);\r\n }\r\n // Reset every channels\r\n var channelIndex = 0;\r\n for (var _i = 0, _a = this._samplerList; _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n this._samplers[key] = channelIndex;\r\n channelIndex += 1;\r\n }\r\n }\r\n this._engine.setTextureArray(this._samplers[channel], this._uniforms[channel], textures);\r\n };\r\n /**\r\n * Sets a texture to be the input of the specified post process. (To use the output, pass in the next post process in the pipeline)\r\n * @param channel Name of the sampler variable.\r\n * @param postProcess Post process to get the input texture from.\r\n */\r\n Effect.prototype.setTextureFromPostProcess = function (channel, postProcess) {\r\n this._engine.setTextureFromPostProcess(this._samplers[channel], postProcess);\r\n };\r\n /**\r\n * (Warning! setTextureFromPostProcessOutput may be desired instead)\r\n * Sets the input texture of the passed in post process to be input of this effect. (To use the output of the passed in post process use setTextureFromPostProcessOutput)\r\n * @param channel Name of the sampler variable.\r\n * @param postProcess Post process to get the output texture from.\r\n */\r\n Effect.prototype.setTextureFromPostProcessOutput = function (channel, postProcess) {\r\n this._engine.setTextureFromPostProcessOutput(this._samplers[channel], postProcess);\r\n };\r\n /** @hidden */\r\n Effect.prototype._cacheMatrix = function (uniformName, matrix) {\r\n var cache = this._valueCache[uniformName];\r\n var flag = matrix.updateFlag;\r\n if (cache !== undefined && cache === flag) {\r\n return false;\r\n }\r\n this._valueCache[uniformName] = flag;\r\n return true;\r\n };\r\n /** @hidden */\r\n Effect.prototype._cacheFloat2 = function (uniformName, x, y) {\r\n var cache = this._valueCache[uniformName];\r\n if (!cache) {\r\n cache = [x, y];\r\n this._valueCache[uniformName] = cache;\r\n return true;\r\n }\r\n var changed = false;\r\n if (cache[0] !== x) {\r\n cache[0] = x;\r\n changed = true;\r\n }\r\n if (cache[1] !== y) {\r\n cache[1] = y;\r\n changed = true;\r\n }\r\n return changed;\r\n };\r\n /** @hidden */\r\n Effect.prototype._cacheFloat3 = function (uniformName, x, y, z) {\r\n var cache = this._valueCache[uniformName];\r\n if (!cache) {\r\n cache = [x, y, z];\r\n this._valueCache[uniformName] = cache;\r\n return true;\r\n }\r\n var changed = false;\r\n if (cache[0] !== x) {\r\n cache[0] = x;\r\n changed = true;\r\n }\r\n if (cache[1] !== y) {\r\n cache[1] = y;\r\n changed = true;\r\n }\r\n if (cache[2] !== z) {\r\n cache[2] = z;\r\n changed = true;\r\n }\r\n return changed;\r\n };\r\n /** @hidden */\r\n Effect.prototype._cacheFloat4 = function (uniformName, x, y, z, w) {\r\n var cache = this._valueCache[uniformName];\r\n if (!cache) {\r\n cache = [x, y, z, w];\r\n this._valueCache[uniformName] = cache;\r\n return true;\r\n }\r\n var changed = false;\r\n if (cache[0] !== x) {\r\n cache[0] = x;\r\n changed = true;\r\n }\r\n if (cache[1] !== y) {\r\n cache[1] = y;\r\n changed = true;\r\n }\r\n if (cache[2] !== z) {\r\n cache[2] = z;\r\n changed = true;\r\n }\r\n if (cache[3] !== w) {\r\n cache[3] = w;\r\n changed = true;\r\n }\r\n return changed;\r\n };\r\n /**\r\n * Binds a buffer to a uniform.\r\n * @param buffer Buffer to bind.\r\n * @param name Name of the uniform variable to bind to.\r\n */\r\n Effect.prototype.bindUniformBuffer = function (buffer, name) {\r\n var bufferName = this._uniformBuffersNames[name];\r\n if (bufferName === undefined || Effect._baseCache[bufferName] === buffer) {\r\n return;\r\n }\r\n Effect._baseCache[bufferName] = buffer;\r\n this._engine.bindUniformBufferBase(buffer, bufferName);\r\n };\r\n /**\r\n * Binds block to a uniform.\r\n * @param blockName Name of the block to bind.\r\n * @param index Index to bind.\r\n */\r\n Effect.prototype.bindUniformBlock = function (blockName, index) {\r\n this._engine.bindUniformBlock(this._pipelineContext, blockName, index);\r\n };\r\n /**\r\n * Sets an interger value on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param value Value to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setInt = function (uniformName, value) {\r\n var cache = this._valueCache[uniformName];\r\n if (cache !== undefined && cache === value) {\r\n return this;\r\n }\r\n this._valueCache[uniformName] = value;\r\n this._engine.setInt(this._uniforms[uniformName], value);\r\n return this;\r\n };\r\n /**\r\n * Sets an int array on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setIntArray = function (uniformName, array) {\r\n this._valueCache[uniformName] = null;\r\n this._engine.setIntArray(this._uniforms[uniformName], array);\r\n return this;\r\n };\r\n /**\r\n * Sets an int array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setIntArray2 = function (uniformName, array) {\r\n this._valueCache[uniformName] = null;\r\n this._engine.setIntArray2(this._uniforms[uniformName], array);\r\n return this;\r\n };\r\n /**\r\n * Sets an int array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setIntArray3 = function (uniformName, array) {\r\n this._valueCache[uniformName] = null;\r\n this._engine.setIntArray3(this._uniforms[uniformName], array);\r\n return this;\r\n };\r\n /**\r\n * Sets an int array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setIntArray4 = function (uniformName, array) {\r\n this._valueCache[uniformName] = null;\r\n this._engine.setIntArray4(this._uniforms[uniformName], array);\r\n return this;\r\n };\r\n /**\r\n * Sets an float array on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setFloatArray = function (uniformName, array) {\r\n this._valueCache[uniformName] = null;\r\n this._engine.setFloatArray(this._uniforms[uniformName], array);\r\n return this;\r\n };\r\n /**\r\n * Sets an float array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setFloatArray2 = function (uniformName, array) {\r\n this._valueCache[uniformName] = null;\r\n this._engine.setFloatArray2(this._uniforms[uniformName], array);\r\n return this;\r\n };\r\n /**\r\n * Sets an float array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setFloatArray3 = function (uniformName, array) {\r\n this._valueCache[uniformName] = null;\r\n this._engine.setFloatArray3(this._uniforms[uniformName], array);\r\n return this;\r\n };\r\n /**\r\n * Sets an float array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setFloatArray4 = function (uniformName, array) {\r\n this._valueCache[uniformName] = null;\r\n this._engine.setFloatArray4(this._uniforms[uniformName], array);\r\n return this;\r\n };\r\n /**\r\n * Sets an array on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setArray = function (uniformName, array) {\r\n this._valueCache[uniformName] = null;\r\n this._engine.setArray(this._uniforms[uniformName], array);\r\n return this;\r\n };\r\n /**\r\n * Sets an array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setArray2 = function (uniformName, array) {\r\n this._valueCache[uniformName] = null;\r\n this._engine.setArray2(this._uniforms[uniformName], array);\r\n return this;\r\n };\r\n /**\r\n * Sets an array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setArray3 = function (uniformName, array) {\r\n this._valueCache[uniformName] = null;\r\n this._engine.setArray3(this._uniforms[uniformName], array);\r\n return this;\r\n };\r\n /**\r\n * Sets an array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setArray4 = function (uniformName, array) {\r\n this._valueCache[uniformName] = null;\r\n this._engine.setArray4(this._uniforms[uniformName], array);\r\n return this;\r\n };\r\n /**\r\n * Sets matrices on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param matrices matrices to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setMatrices = function (uniformName, matrices) {\r\n if (!matrices) {\r\n return this;\r\n }\r\n this._valueCache[uniformName] = null;\r\n this._engine.setMatrices(this._uniforms[uniformName], matrices);\r\n return this;\r\n };\r\n /**\r\n * Sets matrix on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param matrix matrix to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setMatrix = function (uniformName, matrix) {\r\n if (this._cacheMatrix(uniformName, matrix)) {\r\n this._engine.setMatrices(this._uniforms[uniformName], matrix.toArray());\r\n }\r\n return this;\r\n };\r\n /**\r\n * Sets a 3x3 matrix on a uniform variable. (Speicified as [1,2,3,4,5,6,7,8,9] will result in [1,2,3][4,5,6][7,8,9] matrix)\r\n * @param uniformName Name of the variable.\r\n * @param matrix matrix to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setMatrix3x3 = function (uniformName, matrix) {\r\n this._valueCache[uniformName] = null;\r\n this._engine.setMatrix3x3(this._uniforms[uniformName], matrix);\r\n return this;\r\n };\r\n /**\r\n * Sets a 2x2 matrix on a uniform variable. (Speicified as [1,2,3,4] will result in [1,2][3,4] matrix)\r\n * @param uniformName Name of the variable.\r\n * @param matrix matrix to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setMatrix2x2 = function (uniformName, matrix) {\r\n this._valueCache[uniformName] = null;\r\n this._engine.setMatrix2x2(this._uniforms[uniformName], matrix);\r\n return this;\r\n };\r\n /**\r\n * Sets a float on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param value value to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setFloat = function (uniformName, value) {\r\n var cache = this._valueCache[uniformName];\r\n if (cache !== undefined && cache === value) {\r\n return this;\r\n }\r\n this._valueCache[uniformName] = value;\r\n this._engine.setFloat(this._uniforms[uniformName], value);\r\n return this;\r\n };\r\n /**\r\n * Sets a boolean on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param bool value to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setBool = function (uniformName, bool) {\r\n var cache = this._valueCache[uniformName];\r\n if (cache !== undefined && cache === bool) {\r\n return this;\r\n }\r\n this._valueCache[uniformName] = bool;\r\n this._engine.setBool(this._uniforms[uniformName], bool ? 1 : 0);\r\n return this;\r\n };\r\n /**\r\n * Sets a Vector2 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param vector2 vector2 to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setVector2 = function (uniformName, vector2) {\r\n if (this._cacheFloat2(uniformName, vector2.x, vector2.y)) {\r\n this._engine.setFloat2(this._uniforms[uniformName], vector2.x, vector2.y);\r\n }\r\n return this;\r\n };\r\n /**\r\n * Sets a float2 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param x First float in float2.\r\n * @param y Second float in float2.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setFloat2 = function (uniformName, x, y) {\r\n if (this._cacheFloat2(uniformName, x, y)) {\r\n this._engine.setFloat2(this._uniforms[uniformName], x, y);\r\n }\r\n return this;\r\n };\r\n /**\r\n * Sets a Vector3 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param vector3 Value to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setVector3 = function (uniformName, vector3) {\r\n if (this._cacheFloat3(uniformName, vector3.x, vector3.y, vector3.z)) {\r\n this._engine.setFloat3(this._uniforms[uniformName], vector3.x, vector3.y, vector3.z);\r\n }\r\n return this;\r\n };\r\n /**\r\n * Sets a float3 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param x First float in float3.\r\n * @param y Second float in float3.\r\n * @param z Third float in float3.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setFloat3 = function (uniformName, x, y, z) {\r\n if (this._cacheFloat3(uniformName, x, y, z)) {\r\n this._engine.setFloat3(this._uniforms[uniformName], x, y, z);\r\n }\r\n return this;\r\n };\r\n /**\r\n * Sets a Vector4 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param vector4 Value to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setVector4 = function (uniformName, vector4) {\r\n if (this._cacheFloat4(uniformName, vector4.x, vector4.y, vector4.z, vector4.w)) {\r\n this._engine.setFloat4(this._uniforms[uniformName], vector4.x, vector4.y, vector4.z, vector4.w);\r\n }\r\n return this;\r\n };\r\n /**\r\n * Sets a float4 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param x First float in float4.\r\n * @param y Second float in float4.\r\n * @param z Third float in float4.\r\n * @param w Fourth float in float4.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setFloat4 = function (uniformName, x, y, z, w) {\r\n if (this._cacheFloat4(uniformName, x, y, z, w)) {\r\n this._engine.setFloat4(this._uniforms[uniformName], x, y, z, w);\r\n }\r\n return this;\r\n };\r\n /**\r\n * Sets a Color3 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param color3 Value to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setColor3 = function (uniformName, color3) {\r\n if (this._cacheFloat3(uniformName, color3.r, color3.g, color3.b)) {\r\n this._engine.setFloat3(this._uniforms[uniformName], color3.r, color3.g, color3.b);\r\n }\r\n return this;\r\n };\r\n /**\r\n * Sets a Color4 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param color3 Value to be set.\r\n * @param alpha Alpha value to be set.\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setColor4 = function (uniformName, color3, alpha) {\r\n if (this._cacheFloat4(uniformName, color3.r, color3.g, color3.b, alpha)) {\r\n this._engine.setFloat4(this._uniforms[uniformName], color3.r, color3.g, color3.b, alpha);\r\n }\r\n return this;\r\n };\r\n /**\r\n * Sets a Color4 on a uniform variable\r\n * @param uniformName defines the name of the variable\r\n * @param color4 defines the value to be set\r\n * @returns this effect.\r\n */\r\n Effect.prototype.setDirectColor4 = function (uniformName, color4) {\r\n if (this._cacheFloat4(uniformName, color4.r, color4.g, color4.b, color4.a)) {\r\n this._engine.setDirectColor4(this._uniforms[uniformName], color4);\r\n }\r\n return this;\r\n };\r\n /** Release all associated resources */\r\n Effect.prototype.dispose = function () {\r\n this._engine._releaseEffect(this);\r\n };\r\n /**\r\n * This function will add a new shader to the shader store\r\n * @param name the name of the shader\r\n * @param pixelShader optional pixel shader content\r\n * @param vertexShader optional vertex shader content\r\n */\r\n Effect.RegisterShader = function (name, pixelShader, vertexShader) {\r\n if (pixelShader) {\r\n Effect.ShadersStore[name + \"PixelShader\"] = pixelShader;\r\n }\r\n if (vertexShader) {\r\n Effect.ShadersStore[name + \"VertexShader\"] = vertexShader;\r\n }\r\n };\r\n /**\r\n * Resets the cache of effects.\r\n */\r\n Effect.ResetCache = function () {\r\n Effect._baseCache = {};\r\n };\r\n /**\r\n * Gets or sets the relative url used to load shaders if using the engine in non-minified mode\r\n */\r\n Effect.ShadersRepository = \"src/Shaders/\";\r\n Effect._uniqueIdSeed = 0;\r\n Effect._baseCache = {};\r\n /**\r\n * Store of each shader (The can be looked up using effect.key)\r\n */\r\n Effect.ShadersStore = {};\r\n /**\r\n * Store of each included file for a shader (The can be looked up using effect.key)\r\n */\r\n Effect.IncludesShadersStore = {};\r\n return Effect;\r\n}());\r\nexport { Effect };\r\n//# sourceMappingURL=effect.js.map"
  8756. },
  8757. {
  8758. "id": "../../.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  8759. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Meshes\\WebGL\\webGLDataBuffer.js",
  8760. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  8761. "index": 35,
  8762. "index2": 34,
  8763. "size": 692,
  8764. "cacheable": true,
  8765. "built": true,
  8766. "optional": false,
  8767. "prefetched": false,
  8768. "chunks": [
  8769. "thinEngineOnly"
  8770. ],
  8771. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8772. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8773. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8774. "issuerPath": [
  8775. {
  8776. "id": "./thinEngineOnly.ts",
  8777. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  8778. "name": "./thinEngineOnly.ts",
  8779. "profile": {
  8780. "factory": 42,
  8781. "building": 2115
  8782. }
  8783. },
  8784. {
  8785. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8786. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8787. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8788. "profile": {
  8789. "factory": 6,
  8790. "building": 110
  8791. }
  8792. }
  8793. ],
  8794. "profile": {
  8795. "factory": 59,
  8796. "building": 41,
  8797. "dependencies": 4
  8798. },
  8799. "failed": false,
  8800. "errors": 0,
  8801. "warnings": 0,
  8802. "assets": [],
  8803. "reasons": [
  8804. {
  8805. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8806. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8807. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8808. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8809. "type": "harmony side effect evaluation",
  8810. "userRequest": "../Meshes/WebGL/webGLDataBuffer",
  8811. "loc": "16:0-66"
  8812. },
  8813. {
  8814. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8815. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8816. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8817. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8818. "type": "harmony import specifier",
  8819. "userRequest": "../Meshes/WebGL/webGLDataBuffer",
  8820. "loc": "1116:29-44"
  8821. },
  8822. {
  8823. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8824. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8825. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8826. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8827. "type": "harmony import specifier",
  8828. "userRequest": "../Meshes/WebGL/webGLDataBuffer",
  8829. "loc": "1205:29-44"
  8830. },
  8831. {
  8832. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8833. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8834. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8835. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8836. "type": "harmony import specifier",
  8837. "userRequest": "../Meshes/WebGL/webGLDataBuffer",
  8838. "loc": "1497:25-40"
  8839. }
  8840. ],
  8841. "providedExports": [
  8842. "WebGLDataBuffer"
  8843. ],
  8844. "optimizationBailout": [],
  8845. "depth": 2,
  8846. "source": "import * as tslib_1 from \"tslib\";\r\nimport { DataBuffer } from '../dataBuffer';\r\n/** @hidden */\r\nvar WebGLDataBuffer = /** @class */ (function (_super) {\r\n tslib_1.__extends(WebGLDataBuffer, _super);\r\n function WebGLDataBuffer(resource) {\r\n var _this = _super.call(this) || this;\r\n _this._buffer = resource;\r\n return _this;\r\n }\r\n Object.defineProperty(WebGLDataBuffer.prototype, \"underlyingResource\", {\r\n get: function () {\r\n return this._buffer;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return WebGLDataBuffer;\r\n}(DataBuffer));\r\nexport { WebGLDataBuffer };\r\n//# sourceMappingURL=webGLDataBuffer.js.map"
  8847. },
  8848. {
  8849. "id": "../../.temp/packageES6Dev/core/Meshes/dataBuffer.js",
  8850. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Meshes\\dataBuffer.js",
  8851. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Meshes/dataBuffer.js",
  8852. "index": 36,
  8853. "index2": 33,
  8854. "size": 866,
  8855. "cacheable": true,
  8856. "built": true,
  8857. "optional": false,
  8858. "prefetched": false,
  8859. "chunks": [
  8860. "thinEngineOnly"
  8861. ],
  8862. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Meshes\\WebGL\\webGLDataBuffer.js",
  8863. "issuerId": "../../.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  8864. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  8865. "issuerPath": [
  8866. {
  8867. "id": "./thinEngineOnly.ts",
  8868. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  8869. "name": "./thinEngineOnly.ts",
  8870. "profile": {
  8871. "factory": 42,
  8872. "building": 2115
  8873. }
  8874. },
  8875. {
  8876. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8877. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8878. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8879. "profile": {
  8880. "factory": 6,
  8881. "building": 110
  8882. }
  8883. },
  8884. {
  8885. "id": "../../.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  8886. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Meshes\\WebGL\\webGLDataBuffer.js",
  8887. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  8888. "profile": {
  8889. "factory": 59,
  8890. "building": 41,
  8891. "dependencies": 4
  8892. }
  8893. }
  8894. ],
  8895. "profile": {
  8896. "factory": 46,
  8897. "building": 8
  8898. },
  8899. "failed": false,
  8900. "errors": 0,
  8901. "warnings": 0,
  8902. "assets": [],
  8903. "reasons": [
  8904. {
  8905. "moduleId": "../../.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  8906. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Meshes\\WebGL\\webGLDataBuffer.js",
  8907. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  8908. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  8909. "type": "harmony side effect evaluation",
  8910. "userRequest": "../dataBuffer",
  8911. "loc": "2:0-43"
  8912. },
  8913. {
  8914. "moduleId": "../../.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  8915. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Meshes\\WebGL\\webGLDataBuffer.js",
  8916. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  8917. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  8918. "type": "harmony import specifier",
  8919. "userRequest": "../dataBuffer",
  8920. "loc": "19:2-12"
  8921. }
  8922. ],
  8923. "providedExports": [
  8924. "DataBuffer"
  8925. ],
  8926. "optimizationBailout": [],
  8927. "depth": 3,
  8928. "source": "/**\r\n * Class used to store gfx data (like WebGLBuffer)\r\n */\r\nvar DataBuffer = /** @class */ (function () {\r\n function DataBuffer() {\r\n /**\r\n * Gets or sets the number of objects referencing this buffer\r\n */\r\n this.references = 0;\r\n /** Gets or sets the size of the underlying buffer */\r\n this.capacity = 0;\r\n /**\r\n * Gets or sets a boolean indicating if the buffer contains 32bits indices\r\n */\r\n this.is32Bits = false;\r\n }\r\n Object.defineProperty(DataBuffer.prototype, \"underlyingResource\", {\r\n /**\r\n * Gets the underlying buffer\r\n */\r\n get: function () {\r\n return null;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return DataBuffer;\r\n}());\r\nexport { DataBuffer };\r\n//# sourceMappingURL=dataBuffer.js.map"
  8929. },
  8930. {
  8931. "id": "../../.temp/packageES6Dev/core/Misc/devTools.js",
  8932. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\devTools.js",
  8933. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/devTools.js",
  8934. "index": 25,
  8935. "index2": 23,
  8936. "size": 347,
  8937. "cacheable": true,
  8938. "built": true,
  8939. "optional": false,
  8940. "prefetched": false,
  8941. "chunks": [
  8942. "thinEngineOnly"
  8943. ],
  8944. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8945. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8946. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8947. "issuerPath": [
  8948. {
  8949. "id": "./thinEngineOnly.ts",
  8950. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  8951. "name": "./thinEngineOnly.ts",
  8952. "profile": {
  8953. "factory": 42,
  8954. "building": 2115
  8955. }
  8956. },
  8957. {
  8958. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8959. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8960. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8961. "profile": {
  8962. "factory": 6,
  8963. "building": 110
  8964. }
  8965. }
  8966. ],
  8967. "profile": {
  8968. "factory": 59,
  8969. "building": 41,
  8970. "dependencies": 4
  8971. },
  8972. "failed": false,
  8973. "errors": 0,
  8974. "warnings": 0,
  8975. "assets": [],
  8976. "reasons": [
  8977. {
  8978. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8979. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8980. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8981. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8982. "type": "harmony side effect evaluation",
  8983. "userRequest": "../Misc/devTools",
  8984. "loc": "4:0-45"
  8985. },
  8986. {
  8987. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8988. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8989. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8990. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8991. "type": "harmony import specifier",
  8992. "userRequest": "../Misc/devTools",
  8993. "loc": "2573:14-23"
  8994. },
  8995. {
  8996. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  8997. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  8998. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  8999. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9000. "type": "harmony import specifier",
  9001. "userRequest": "../Misc/devTools",
  9002. "loc": "2589:14-23"
  9003. },
  9004. {
  9005. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9006. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9007. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9008. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9009. "type": "harmony import specifier",
  9010. "userRequest": "../Misc/devTools",
  9011. "loc": "2608:14-23"
  9012. },
  9013. {
  9014. "moduleId": "../../.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  9015. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\Textures\\internalTexture.js",
  9016. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  9017. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  9018. "type": "harmony side effect evaluation",
  9019. "userRequest": "../../Misc/devTools",
  9020. "loc": "4:0-48"
  9021. },
  9022. {
  9023. "moduleId": "../../.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  9024. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\Textures\\internalTexture.js",
  9025. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  9026. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  9027. "type": "harmony import specifier",
  9028. "userRequest": "../../Misc/devTools",
  9029. "loc": "373:14-23"
  9030. }
  9031. ],
  9032. "providedExports": [
  9033. "_DevTools"
  9034. ],
  9035. "optimizationBailout": [],
  9036. "depth": 2,
  9037. "source": "/** @hidden */\r\nvar _DevTools = /** @class */ (function () {\r\n function _DevTools() {\r\n }\r\n _DevTools.WarnImport = function (name) {\r\n return name + \" needs to be imported before as it contains a side-effect required by your code.\";\r\n };\r\n return _DevTools;\r\n}());\r\nexport { _DevTools };\r\n//# sourceMappingURL=devTools.js.map"
  9038. },
  9039. {
  9040. "id": "../../.temp/packageES6Dev/core/Misc/domManagement.js",
  9041. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\domManagement.js",
  9042. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/domManagement.js",
  9043. "index": 7,
  9044. "index2": 4,
  9045. "size": 1249,
  9046. "cacheable": true,
  9047. "built": true,
  9048. "optional": false,
  9049. "prefetched": false,
  9050. "chunks": [
  9051. "thinEngineOnly"
  9052. ],
  9053. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9054. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9055. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9056. "issuerPath": [
  9057. {
  9058. "id": "./thinEngineOnly.ts",
  9059. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  9060. "name": "./thinEngineOnly.ts",
  9061. "profile": {
  9062. "factory": 42,
  9063. "building": 2115
  9064. }
  9065. },
  9066. {
  9067. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9068. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9069. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9070. "profile": {
  9071. "factory": 6,
  9072. "building": 110
  9073. }
  9074. }
  9075. ],
  9076. "profile": {
  9077. "factory": 59,
  9078. "building": 41,
  9079. "dependencies": 4
  9080. },
  9081. "failed": false,
  9082. "errors": 0,
  9083. "warnings": 0,
  9084. "assets": [],
  9085. "reasons": [
  9086. {
  9087. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9088. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9089. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9090. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9091. "type": "harmony side effect evaluation",
  9092. "userRequest": "../Misc/domManagement",
  9093. "loc": "14:0-54"
  9094. },
  9095. {
  9096. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9097. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9098. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9099. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9100. "type": "harmony import specifier",
  9101. "userRequest": "../Misc/domManagement",
  9102. "loc": "289:31-44"
  9103. },
  9104. {
  9105. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9106. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9107. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9108. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9109. "type": "harmony import specifier",
  9110. "userRequest": "../Misc/domManagement",
  9111. "loc": "3329:12-25"
  9112. },
  9113. {
  9114. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9115. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9116. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9117. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9118. "type": "harmony import specifier",
  9119. "userRequest": "../Misc/domManagement",
  9120. "loc": "3794:13-26"
  9121. },
  9122. {
  9123. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  9124. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  9125. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9126. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9127. "type": "harmony side effect evaluation",
  9128. "userRequest": "../Misc/domManagement",
  9129. "loc": "3:0-54"
  9130. },
  9131. {
  9132. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  9133. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  9134. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9135. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9136. "type": "harmony import specifier",
  9137. "userRequest": "../Misc/domManagement",
  9138. "loc": "461:33-46"
  9139. },
  9140. {
  9141. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  9142. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  9143. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9144. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9145. "type": "harmony import specifier",
  9146. "userRequest": "../Misc/domManagement",
  9147. "loc": "497:35-48"
  9148. },
  9149. {
  9150. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  9151. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  9152. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9153. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9154. "type": "harmony side effect evaluation",
  9155. "userRequest": "./domManagement",
  9156. "loc": "3:0-48"
  9157. },
  9158. {
  9159. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  9160. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  9161. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9162. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9163. "type": "harmony import specifier",
  9164. "userRequest": "./domManagement",
  9165. "loc": "223:106-119"
  9166. },
  9167. {
  9168. "moduleId": "../../.temp/packageES6Dev/core/Misc/precisionDate.js",
  9169. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\precisionDate.js",
  9170. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/precisionDate.js",
  9171. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/precisionDate.js",
  9172. "type": "harmony side effect evaluation",
  9173. "userRequest": "./domManagement",
  9174. "loc": "1:0-48"
  9175. },
  9176. {
  9177. "moduleId": "../../.temp/packageES6Dev/core/Misc/precisionDate.js",
  9178. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\precisionDate.js",
  9179. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/precisionDate.js",
  9180. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/precisionDate.js",
  9181. "type": "harmony import specifier",
  9182. "userRequest": "./domManagement",
  9183. "loc": "13:16-29"
  9184. }
  9185. ],
  9186. "providedExports": [
  9187. "DomManagement"
  9188. ],
  9189. "optimizationBailout": [],
  9190. "depth": 2,
  9191. "source": "/**\r\n * Sets of helpers dealing with the DOM and some of the recurrent functions needed in\r\n * Babylon.js\r\n */\r\nvar DomManagement = /** @class */ (function () {\r\n function DomManagement() {\r\n }\r\n /**\r\n * Checks if the window object exists\r\n * @returns true if the window object exists\r\n */\r\n DomManagement.IsWindowObjectExist = function () {\r\n return (typeof window) !== \"undefined\";\r\n };\r\n /**\r\n * Checks if the navigator object exists\r\n * @returns true if the navigator object exists\r\n */\r\n DomManagement.IsNavigatorAvailable = function () {\r\n return (typeof navigator) !== \"undefined\";\r\n };\r\n /**\r\n * Extracts text content from a DOM element hierarchy\r\n * @param element defines the root element\r\n * @returns a string\r\n */\r\n DomManagement.GetDOMTextContent = function (element) {\r\n var result = \"\";\r\n var child = element.firstChild;\r\n while (child) {\r\n if (child.nodeType === 3) {\r\n result += child.textContent;\r\n }\r\n child = (child.nextSibling);\r\n }\r\n return result;\r\n };\r\n return DomManagement;\r\n}());\r\nexport { DomManagement };\r\n//# sourceMappingURL=domManagement.js.map"
  9192. },
  9193. {
  9194. "id": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  9195. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  9196. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9197. "index": 20,
  9198. "index2": 20,
  9199. "size": 13727,
  9200. "cacheable": true,
  9201. "built": true,
  9202. "optional": false,
  9203. "prefetched": false,
  9204. "chunks": [
  9205. "thinEngineOnly"
  9206. ],
  9207. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9208. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9209. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9210. "issuerPath": [
  9211. {
  9212. "id": "./thinEngineOnly.ts",
  9213. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  9214. "name": "./thinEngineOnly.ts",
  9215. "profile": {
  9216. "factory": 42,
  9217. "building": 2115
  9218. }
  9219. },
  9220. {
  9221. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9222. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9223. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9224. "profile": {
  9225. "factory": 6,
  9226. "building": 110
  9227. }
  9228. }
  9229. ],
  9230. "profile": {
  9231. "factory": 59,
  9232. "building": 41,
  9233. "dependencies": 4
  9234. },
  9235. "failed": false,
  9236. "errors": 0,
  9237. "warnings": 0,
  9238. "assets": [],
  9239. "reasons": [
  9240. {
  9241. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  9242. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  9243. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  9244. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  9245. "type": "harmony side effect evaluation",
  9246. "userRequest": "../../Misc/fileTools",
  9247. "loc": "9:0-49"
  9248. },
  9249. {
  9250. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  9251. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  9252. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  9253. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  9254. "type": "harmony import specifier",
  9255. "userRequest": "../../Misc/fileTools",
  9256. "loc": "284:16-25"
  9257. },
  9258. {
  9259. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9260. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9261. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9262. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9263. "type": "harmony side effect evaluation",
  9264. "userRequest": "../Misc/fileTools",
  9265. "loc": "18:0-46"
  9266. },
  9267. {
  9268. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9269. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9270. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9271. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9272. "type": "harmony import specifier",
  9273. "userRequest": "../Misc/fileTools",
  9274. "loc": "2540:20-29"
  9275. },
  9276. {
  9277. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9278. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9279. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9280. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9281. "type": "harmony import specifier",
  9282. "userRequest": "../Misc/fileTools",
  9283. "loc": "2544:16-25"
  9284. },
  9285. {
  9286. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9287. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9288. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9289. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9290. "type": "harmony import specifier",
  9291. "userRequest": "../Misc/fileTools",
  9292. "loc": "3702:22-31"
  9293. }
  9294. ],
  9295. "providedExports": [
  9296. "FileTools"
  9297. ],
  9298. "optimizationBailout": [],
  9299. "depth": 2,
  9300. "source": "import { WebRequest } from './webRequest';\r\nimport { LoadFileError } from './loadFileError';\r\nimport { DomManagement } from './domManagement';\r\nimport { Observable } from './observable';\r\nimport { FilesInputStore } from './filesInputStore';\r\nimport { RetryStrategy } from './retryStrategy';\r\n/**\r\n * @hidden\r\n */\r\nvar FileTools = /** @class */ (function () {\r\n function FileTools() {\r\n }\r\n /**\r\n * Removes unwanted characters from an url\r\n * @param url defines the url to clean\r\n * @returns the cleaned url\r\n */\r\n FileTools._CleanUrl = function (url) {\r\n url = url.replace(/#/mg, \"%23\");\r\n return url;\r\n };\r\n /**\r\n * Sets the cors behavior on a dom element. This will add the required Tools.CorsBehavior to the element.\r\n * @param url define the url we are trying\r\n * @param element define the dom element where to configure the cors policy\r\n */\r\n FileTools.SetCorsBehavior = function (url, element) {\r\n if (url && url.indexOf(\"data:\") === 0) {\r\n return;\r\n }\r\n if (this.CorsBehavior) {\r\n if (typeof (this.CorsBehavior) === 'string' || this.CorsBehavior instanceof String) {\r\n element.crossOrigin = this.CorsBehavior;\r\n }\r\n else {\r\n var result = this.CorsBehavior(url);\r\n if (result) {\r\n element.crossOrigin = result;\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Loads an image as an HTMLImageElement.\r\n * @param input url string, ArrayBuffer, or Blob to load\r\n * @param onLoad callback called when the image successfully loads\r\n * @param onError callback called when the image fails to load\r\n * @param offlineProvider offline provider for caching\r\n * @returns the HTMLImageElement of the loaded image\r\n */\r\n FileTools.LoadImage = function (input, onLoad, onError, offlineProvider) {\r\n var url;\r\n var usingObjectURL = false;\r\n if (input instanceof ArrayBuffer || ArrayBuffer.isView(input)) {\r\n url = URL.createObjectURL(new Blob([input]));\r\n usingObjectURL = true;\r\n }\r\n else if (input instanceof Blob) {\r\n url = URL.createObjectURL(input);\r\n usingObjectURL = true;\r\n }\r\n else {\r\n url = this._CleanUrl(input);\r\n url = this.PreprocessUrl(input);\r\n }\r\n var img = new Image();\r\n this.SetCorsBehavior(url, img);\r\n var loadHandler = function () {\r\n img.removeEventListener(\"load\", loadHandler);\r\n img.removeEventListener(\"error\", errorHandler);\r\n onLoad(img);\r\n // Must revoke the URL after calling onLoad to avoid security exceptions in\r\n // certain scenarios (e.g. when hosted in vscode).\r\n if (usingObjectURL && img.src) {\r\n URL.revokeObjectURL(img.src);\r\n }\r\n };\r\n var errorHandler = function (err) {\r\n img.removeEventListener(\"load\", loadHandler);\r\n img.removeEventListener(\"error\", errorHandler);\r\n if (onError) {\r\n onError(\"Error while trying to load image: \" + input, err);\r\n }\r\n if (usingObjectURL && img.src) {\r\n URL.revokeObjectURL(img.src);\r\n }\r\n };\r\n img.addEventListener(\"load\", loadHandler);\r\n img.addEventListener(\"error\", errorHandler);\r\n var noOfflineSupport = function () {\r\n img.src = url;\r\n };\r\n var loadFromOfflineSupport = function () {\r\n if (offlineProvider) {\r\n offlineProvider.loadImage(url, img);\r\n }\r\n };\r\n if (url.substr(0, 5) !== \"data:\" && offlineProvider && offlineProvider.enableTexturesOffline) {\r\n offlineProvider.open(loadFromOfflineSupport, noOfflineSupport);\r\n }\r\n else {\r\n if (url.indexOf(\"file:\") !== -1) {\r\n var textureName = decodeURIComponent(url.substring(5).toLowerCase());\r\n if (FilesInputStore.FilesToLoad[textureName]) {\r\n try {\r\n var blobURL;\r\n try {\r\n blobURL = URL.createObjectURL(FilesInputStore.FilesToLoad[textureName]);\r\n }\r\n catch (ex) {\r\n // Chrome doesn't support oneTimeOnly parameter\r\n blobURL = URL.createObjectURL(FilesInputStore.FilesToLoad[textureName]);\r\n }\r\n img.src = blobURL;\r\n usingObjectURL = true;\r\n }\r\n catch (e) {\r\n img.src = \"\";\r\n }\r\n return img;\r\n }\r\n }\r\n noOfflineSupport();\r\n }\r\n return img;\r\n };\r\n /**\r\n * Loads a file\r\n * @param fileToLoad defines the file to load\r\n * @param callback defines the callback to call when data is loaded\r\n * @param progressCallBack defines the callback to call during loading process\r\n * @param useArrayBuffer defines a boolean indicating that data must be returned as an ArrayBuffer\r\n * @returns a file request object\r\n */\r\n FileTools.ReadFile = function (fileToLoad, callback, progressCallBack, useArrayBuffer) {\r\n var reader = new FileReader();\r\n var request = {\r\n onCompleteObservable: new Observable(),\r\n abort: function () { return reader.abort(); },\r\n };\r\n reader.onloadend = function (e) { return request.onCompleteObservable.notifyObservers(request); };\r\n reader.onerror = function (e) {\r\n callback(JSON.stringify({ autoClear: true, clearColor: [1, 0, 0], ambientColor: [0, 0, 0], gravity: [0, -9.807, 0], meshes: [], cameras: [], lights: [] }));\r\n };\r\n reader.onload = function (e) {\r\n //target doesn't have result from ts 1.3\r\n callback(e.target['result']);\r\n };\r\n if (progressCallBack) {\r\n reader.onprogress = progressCallBack;\r\n }\r\n if (!useArrayBuffer) {\r\n // Asynchronous read\r\n reader.readAsText(fileToLoad);\r\n }\r\n else {\r\n reader.readAsArrayBuffer(fileToLoad);\r\n }\r\n return request;\r\n };\r\n /**\r\n * Loads a file\r\n * @param url url string, ArrayBuffer, or Blob to load\r\n * @param onSuccess callback called when the file successfully loads\r\n * @param onProgress callback called while file is loading (if the server supports this mode)\r\n * @param offlineProvider defines the offline provider for caching\r\n * @param useArrayBuffer defines a boolean indicating that date must be returned as ArrayBuffer\r\n * @param onError callback called when the file fails to load\r\n * @returns a file request object\r\n */\r\n FileTools.LoadFile = function (url, onSuccess, onProgress, offlineProvider, useArrayBuffer, onError) {\r\n var _this = this;\r\n url = this._CleanUrl(url);\r\n url = this.PreprocessUrl(url);\r\n // If file and file input are set\r\n if (url.indexOf(\"file:\") !== -1) {\r\n var fileName = decodeURIComponent(url.substring(5).toLowerCase());\r\n if (FilesInputStore.FilesToLoad[fileName]) {\r\n return this.ReadFile(FilesInputStore.FilesToLoad[fileName], onSuccess, onProgress, useArrayBuffer);\r\n }\r\n }\r\n var loadUrl = this.BaseUrl + url;\r\n var aborted = false;\r\n var fileRequest = {\r\n onCompleteObservable: new Observable(),\r\n abort: function () { return aborted = true; },\r\n };\r\n var requestFile = function () {\r\n var request = new WebRequest();\r\n var retryHandle = null;\r\n fileRequest.abort = function () {\r\n aborted = true;\r\n if (request.readyState !== (XMLHttpRequest.DONE || 4)) {\r\n request.abort();\r\n }\r\n if (retryHandle !== null) {\r\n clearTimeout(retryHandle);\r\n retryHandle = null;\r\n }\r\n };\r\n var retryLoop = function (retryIndex) {\r\n request.open('GET', loadUrl);\r\n if (useArrayBuffer) {\r\n request.responseType = \"arraybuffer\";\r\n }\r\n if (onProgress) {\r\n request.addEventListener(\"progress\", onProgress);\r\n }\r\n var onLoadEnd = function () {\r\n request.removeEventListener(\"loadend\", onLoadEnd);\r\n fileRequest.onCompleteObservable.notifyObservers(fileRequest);\r\n fileRequest.onCompleteObservable.clear();\r\n };\r\n request.addEventListener(\"loadend\", onLoadEnd);\r\n var onReadyStateChange = function () {\r\n if (aborted) {\r\n return;\r\n }\r\n // In case of undefined state in some browsers.\r\n if (request.readyState === (XMLHttpRequest.DONE || 4)) {\r\n // Some browsers have issues where onreadystatechange can be called multiple times with the same value.\r\n request.removeEventListener(\"readystatechange\", onReadyStateChange);\r\n if ((request.status >= 200 && request.status < 300) || (request.status === 0 && (!DomManagement.IsWindowObjectExist() || _this.IsFileURL()))) {\r\n onSuccess(!useArrayBuffer ? request.responseText : request.response, request.responseURL);\r\n return;\r\n }\r\n var retryStrategy = _this.DefaultRetryStrategy;\r\n if (retryStrategy) {\r\n var waitTime = retryStrategy(loadUrl, request, retryIndex);\r\n if (waitTime !== -1) {\r\n // Prevent the request from completing for retry.\r\n request.removeEventListener(\"loadend\", onLoadEnd);\r\n request = new WebRequest();\r\n retryHandle = setTimeout(function () { return retryLoop(retryIndex + 1); }, waitTime);\r\n return;\r\n }\r\n }\r\n var e = new LoadFileError(\"Error status: \" + request.status + \" \" + request.statusText + \" - Unable to load \" + loadUrl, request);\r\n if (onError) {\r\n onError(request, e);\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n };\r\n request.addEventListener(\"readystatechange\", onReadyStateChange);\r\n request.send();\r\n };\r\n retryLoop(0);\r\n };\r\n // Caching all files\r\n if (offlineProvider && offlineProvider.enableSceneOffline) {\r\n var noOfflineSupport_1 = function (request) {\r\n if (request && request.status > 400) {\r\n if (onError) {\r\n onError(request);\r\n }\r\n }\r\n else {\r\n if (!aborted) {\r\n requestFile();\r\n }\r\n }\r\n };\r\n var loadFromOfflineSupport = function () {\r\n // TODO: database needs to support aborting and should return a IFileRequest\r\n if (aborted) {\r\n return;\r\n }\r\n if (offlineProvider) {\r\n offlineProvider.loadFile(url, function (data) {\r\n if (!aborted) {\r\n onSuccess(data);\r\n }\r\n fileRequest.onCompleteObservable.notifyObservers(fileRequest);\r\n }, onProgress ? function (event) {\r\n if (!aborted) {\r\n onProgress(event);\r\n }\r\n } : undefined, noOfflineSupport_1, useArrayBuffer);\r\n }\r\n };\r\n offlineProvider.open(loadFromOfflineSupport, noOfflineSupport_1);\r\n }\r\n else {\r\n requestFile();\r\n }\r\n return fileRequest;\r\n };\r\n /**\r\n * Checks if the loaded document was accessed via `file:`-Protocol.\r\n * @returns boolean\r\n */\r\n FileTools.IsFileURL = function () {\r\n return location.protocol === \"file:\";\r\n };\r\n /**\r\n * Gets or sets the retry strategy to apply when an error happens while loading an asset\r\n */\r\n FileTools.DefaultRetryStrategy = RetryStrategy.ExponentialBackoff();\r\n /**\r\n * Gets or sets the base URL to use to load assets\r\n */\r\n FileTools.BaseUrl = \"\";\r\n /**\r\n * Default behaviour for cors in the application.\r\n * It can be a string if the expected behavior is identical in the entire app.\r\n * Or a callback to be able to set it per url or on a group of them (in case of Video source for instance)\r\n */\r\n FileTools.CorsBehavior = \"anonymous\";\r\n /**\r\n * Gets or sets a function used to pre-process url before using them to load assets\r\n */\r\n FileTools.PreprocessUrl = function (url) {\r\n return url;\r\n };\r\n return FileTools;\r\n}());\r\nexport { FileTools };\r\n//# sourceMappingURL=fileTools.js.map"
  9301. },
  9302. {
  9303. "id": "../../.temp/packageES6Dev/core/Misc/filesInputStore.js",
  9304. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\filesInputStore.js",
  9305. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/filesInputStore.js",
  9306. "index": 23,
  9307. "index2": 18,
  9308. "size": 387,
  9309. "cacheable": true,
  9310. "built": true,
  9311. "optional": false,
  9312. "prefetched": false,
  9313. "chunks": [
  9314. "thinEngineOnly"
  9315. ],
  9316. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  9317. "issuerId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  9318. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9319. "issuerPath": [
  9320. {
  9321. "id": "./thinEngineOnly.ts",
  9322. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  9323. "name": "./thinEngineOnly.ts",
  9324. "profile": {
  9325. "factory": 42,
  9326. "building": 2115
  9327. }
  9328. },
  9329. {
  9330. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9331. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9332. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9333. "profile": {
  9334. "factory": 6,
  9335. "building": 110
  9336. }
  9337. },
  9338. {
  9339. "id": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  9340. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  9341. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9342. "profile": {
  9343. "factory": 59,
  9344. "building": 41,
  9345. "dependencies": 4
  9346. }
  9347. }
  9348. ],
  9349. "profile": {
  9350. "factory": 61,
  9351. "building": 8,
  9352. "dependencies": 2
  9353. },
  9354. "failed": false,
  9355. "errors": 0,
  9356. "warnings": 0,
  9357. "assets": [],
  9358. "reasons": [
  9359. {
  9360. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  9361. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  9362. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9363. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9364. "type": "harmony side effect evaluation",
  9365. "userRequest": "./filesInputStore",
  9366. "loc": "5:0-52"
  9367. },
  9368. {
  9369. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  9370. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  9371. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9372. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9373. "type": "harmony import specifier",
  9374. "userRequest": "./filesInputStore",
  9375. "loc": "104:20-35"
  9376. },
  9377. {
  9378. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  9379. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  9380. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9381. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9382. "type": "harmony import specifier",
  9383. "userRequest": "./filesInputStore",
  9384. "loc": "108:58-73"
  9385. },
  9386. {
  9387. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  9388. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  9389. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9390. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9391. "type": "harmony import specifier",
  9392. "userRequest": "./filesInputStore",
  9393. "loc": "112:58-73"
  9394. },
  9395. {
  9396. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  9397. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  9398. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9399. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9400. "type": "harmony import specifier",
  9401. "userRequest": "./filesInputStore",
  9402. "loc": "178:16-31"
  9403. },
  9404. {
  9405. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  9406. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  9407. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9408. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9409. "type": "harmony import specifier",
  9410. "userRequest": "./filesInputStore",
  9411. "loc": "179:37-52"
  9412. }
  9413. ],
  9414. "providedExports": [
  9415. "FilesInputStore"
  9416. ],
  9417. "optimizationBailout": [],
  9418. "depth": 3,
  9419. "source": "/**\r\n * Class used to help managing file picking and drag'n'drop\r\n * File Storage\r\n */\r\nvar FilesInputStore = /** @class */ (function () {\r\n function FilesInputStore() {\r\n }\r\n /**\r\n * List of files ready to be loaded\r\n */\r\n FilesInputStore.FilesToLoad = {};\r\n return FilesInputStore;\r\n}());\r\nexport { FilesInputStore };\r\n//# sourceMappingURL=filesInputStore.js.map"
  9420. },
  9421. {
  9422. "id": "../../.temp/packageES6Dev/core/Misc/loadFileError.js",
  9423. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\loadFileError.js",
  9424. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/loadFileError.js",
  9425. "index": 22,
  9426. "index2": 17,
  9427. "size": 1266,
  9428. "cacheable": true,
  9429. "built": true,
  9430. "optional": false,
  9431. "prefetched": false,
  9432. "chunks": [
  9433. "thinEngineOnly"
  9434. ],
  9435. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  9436. "issuerId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  9437. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9438. "issuerPath": [
  9439. {
  9440. "id": "./thinEngineOnly.ts",
  9441. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  9442. "name": "./thinEngineOnly.ts",
  9443. "profile": {
  9444. "factory": 42,
  9445. "building": 2115
  9446. }
  9447. },
  9448. {
  9449. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9450. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9451. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9452. "profile": {
  9453. "factory": 6,
  9454. "building": 110
  9455. }
  9456. },
  9457. {
  9458. "id": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  9459. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  9460. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9461. "profile": {
  9462. "factory": 59,
  9463. "building": 41,
  9464. "dependencies": 4
  9465. }
  9466. }
  9467. ],
  9468. "profile": {
  9469. "factory": 61,
  9470. "building": 8,
  9471. "dependencies": 2
  9472. },
  9473. "failed": false,
  9474. "errors": 0,
  9475. "warnings": 0,
  9476. "assets": [],
  9477. "reasons": [
  9478. {
  9479. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  9480. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  9481. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9482. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9483. "type": "harmony side effect evaluation",
  9484. "userRequest": "./loadFileError",
  9485. "loc": "2:0-48"
  9486. },
  9487. {
  9488. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  9489. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  9490. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9491. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9492. "type": "harmony import specifier",
  9493. "userRequest": "./loadFileError",
  9494. "loc": "238:36-49"
  9495. }
  9496. ],
  9497. "providedExports": [
  9498. "LoadFileError"
  9499. ],
  9500. "optimizationBailout": [],
  9501. "depth": 3,
  9502. "source": "import * as tslib_1 from \"tslib\";\r\n/**\r\n * @ignore\r\n * Application error to support additional information when loading a file\r\n */\r\nvar LoadFileError = /** @class */ (function (_super) {\r\n tslib_1.__extends(LoadFileError, _super);\r\n /**\r\n * Creates a new LoadFileError\r\n * @param message defines the message of the error\r\n * @param request defines the optional web request\r\n */\r\n function LoadFileError(message, \r\n /** defines the optional web request */\r\n request) {\r\n var _this = _super.call(this, message) || this;\r\n _this.request = request;\r\n _this.name = \"LoadFileError\";\r\n LoadFileError._setPrototypeOf(_this, LoadFileError.prototype);\r\n return _this;\r\n }\r\n // See https://stackoverflow.com/questions/12915412/how-do-i-extend-a-host-object-e-g-error-in-typescript\r\n // and https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work\r\n // Polyfill for Object.setPrototypeOf if necessary.\r\n LoadFileError._setPrototypeOf = Object.setPrototypeOf || (function (o, proto) { o.__proto__ = proto; return o; });\r\n return LoadFileError;\r\n}(Error));\r\nexport { LoadFileError };\r\n//# sourceMappingURL=loadFileError.js.map"
  9503. },
  9504. {
  9505. "id": "../../.temp/packageES6Dev/core/Misc/logger.js",
  9506. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\logger.js",
  9507. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/logger.js",
  9508. "index": 8,
  9509. "index2": 5,
  9510. "size": 4161,
  9511. "cacheable": true,
  9512. "built": true,
  9513. "optional": false,
  9514. "prefetched": false,
  9515. "chunks": [
  9516. "thinEngineOnly"
  9517. ],
  9518. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9519. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9520. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9521. "issuerPath": [
  9522. {
  9523. "id": "./thinEngineOnly.ts",
  9524. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  9525. "name": "./thinEngineOnly.ts",
  9526. "profile": {
  9527. "factory": 42,
  9528. "building": 2115
  9529. }
  9530. },
  9531. {
  9532. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9533. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9534. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9535. "profile": {
  9536. "factory": 6,
  9537. "building": 110
  9538. }
  9539. }
  9540. ],
  9541. "profile": {
  9542. "factory": 59,
  9543. "building": 41,
  9544. "dependencies": 4
  9545. },
  9546. "failed": false,
  9547. "errors": 0,
  9548. "warnings": 0,
  9549. "assets": [],
  9550. "reasons": [
  9551. {
  9552. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9553. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9554. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9555. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9556. "type": "harmony side effect evaluation",
  9557. "userRequest": "../Misc/logger",
  9558. "loc": "13:0-40"
  9559. },
  9560. {
  9561. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9562. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9563. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9564. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9565. "type": "harmony import specifier",
  9566. "userRequest": "../Misc/logger",
  9567. "loc": "216:20-26"
  9568. },
  9569. {
  9570. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9571. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9572. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9573. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9574. "type": "harmony import specifier",
  9575. "userRequest": "../Misc/logger",
  9576. "loc": "232:24-30"
  9577. },
  9578. {
  9579. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9580. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9581. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9582. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9583. "type": "harmony import specifier",
  9584. "userRequest": "../Misc/logger",
  9585. "loc": "2656:12-18"
  9586. },
  9587. {
  9588. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9589. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9590. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9591. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9592. "type": "harmony import specifier",
  9593. "userRequest": "../Misc/logger",
  9594. "loc": "2744:12-18"
  9595. },
  9596. {
  9597. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  9598. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  9599. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9600. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9601. "type": "harmony side effect evaluation",
  9602. "userRequest": "../Misc/logger",
  9603. "loc": "4:0-40"
  9604. },
  9605. {
  9606. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  9607. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  9608. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9609. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9610. "type": "harmony import specifier",
  9611. "userRequest": "../Misc/logger",
  9612. "loc": "547:12-18"
  9613. },
  9614. {
  9615. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  9616. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  9617. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9618. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9619. "type": "harmony import specifier",
  9620. "userRequest": "../Misc/logger",
  9621. "loc": "548:12-18"
  9622. },
  9623. {
  9624. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  9625. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  9626. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9627. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9628. "type": "harmony import specifier",
  9629. "userRequest": "../Misc/logger",
  9630. "loc": "551:12-18"
  9631. },
  9632. {
  9633. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  9634. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  9635. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9636. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9637. "type": "harmony import specifier",
  9638. "userRequest": "../Misc/logger",
  9639. "loc": "552:12-18"
  9640. },
  9641. {
  9642. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  9643. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  9644. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9645. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9646. "type": "harmony import specifier",
  9647. "userRequest": "../Misc/logger",
  9648. "loc": "555:12-18"
  9649. },
  9650. {
  9651. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  9652. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  9653. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9654. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9655. "type": "harmony import specifier",
  9656. "userRequest": "../Misc/logger",
  9657. "loc": "556:12-18"
  9658. },
  9659. {
  9660. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  9661. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  9662. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9663. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9664. "type": "harmony import specifier",
  9665. "userRequest": "../Misc/logger",
  9666. "loc": "659:8-14"
  9667. },
  9668. {
  9669. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  9670. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  9671. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9672. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9673. "type": "harmony import specifier",
  9674. "userRequest": "../Misc/logger",
  9675. "loc": "660:8-14"
  9676. },
  9677. {
  9678. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  9679. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  9680. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9681. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9682. "type": "harmony import specifier",
  9683. "userRequest": "../Misc/logger",
  9684. "loc": "663:8-14"
  9685. },
  9686. {
  9687. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  9688. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  9689. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9690. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9691. "type": "harmony import specifier",
  9692. "userRequest": "../Misc/logger",
  9693. "loc": "666:8-14"
  9694. },
  9695. {
  9696. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  9697. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  9698. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9699. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9700. "type": "harmony import specifier",
  9701. "userRequest": "../Misc/logger",
  9702. "loc": "667:8-14"
  9703. },
  9704. {
  9705. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  9706. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  9707. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9708. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9709. "type": "harmony import specifier",
  9710. "userRequest": "../Misc/logger",
  9711. "loc": "679:16-22"
  9712. }
  9713. ],
  9714. "providedExports": [
  9715. "Logger"
  9716. ],
  9717. "optimizationBailout": [],
  9718. "depth": 2,
  9719. "source": "/**\r\n * Logger used througouht the application to allow configuration of\r\n * the log level required for the messages.\r\n */\r\nvar Logger = /** @class */ (function () {\r\n function Logger() {\r\n }\r\n Logger._AddLogEntry = function (entry) {\r\n Logger._LogCache = entry + Logger._LogCache;\r\n if (Logger.OnNewCacheEntry) {\r\n Logger.OnNewCacheEntry(entry);\r\n }\r\n };\r\n Logger._FormatMessage = function (message) {\r\n var padStr = function (i) { return (i < 10) ? \"0\" + i : \"\" + i; };\r\n var date = new Date();\r\n return \"[\" + padStr(date.getHours()) + \":\" + padStr(date.getMinutes()) + \":\" + padStr(date.getSeconds()) + \"]: \" + message;\r\n };\r\n Logger._LogDisabled = function (message) {\r\n // nothing to do\r\n };\r\n Logger._LogEnabled = function (message) {\r\n var formattedMessage = Logger._FormatMessage(message);\r\n console.log(\"BJS - \" + formattedMessage);\r\n var entry = \"<div style='color:white'>\" + formattedMessage + \"</div><br>\";\r\n Logger._AddLogEntry(entry);\r\n };\r\n Logger._WarnDisabled = function (message) {\r\n // nothing to do\r\n };\r\n Logger._WarnEnabled = function (message) {\r\n var formattedMessage = Logger._FormatMessage(message);\r\n console.warn(\"BJS - \" + formattedMessage);\r\n var entry = \"<div style='color:orange'>\" + formattedMessage + \"</div><br>\";\r\n Logger._AddLogEntry(entry);\r\n };\r\n Logger._ErrorDisabled = function (message) {\r\n // nothing to do\r\n };\r\n Logger._ErrorEnabled = function (message) {\r\n Logger.errorsCount++;\r\n var formattedMessage = Logger._FormatMessage(message);\r\n console.error(\"BJS - \" + formattedMessage);\r\n var entry = \"<div style='color:red'>\" + formattedMessage + \"</div><br>\";\r\n Logger._AddLogEntry(entry);\r\n };\r\n Object.defineProperty(Logger, \"LogCache\", {\r\n /**\r\n * Gets current log cache (list of logs)\r\n */\r\n get: function () {\r\n return Logger._LogCache;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Clears the log cache\r\n */\r\n Logger.ClearLogCache = function () {\r\n Logger._LogCache = \"\";\r\n Logger.errorsCount = 0;\r\n };\r\n Object.defineProperty(Logger, \"LogLevels\", {\r\n /**\r\n * Sets the current log level (MessageLogLevel / WarningLogLevel / ErrorLogLevel)\r\n */\r\n set: function (level) {\r\n if ((level & Logger.MessageLogLevel) === Logger.MessageLogLevel) {\r\n Logger.Log = Logger._LogEnabled;\r\n }\r\n else {\r\n Logger.Log = Logger._LogDisabled;\r\n }\r\n if ((level & Logger.WarningLogLevel) === Logger.WarningLogLevel) {\r\n Logger.Warn = Logger._WarnEnabled;\r\n }\r\n else {\r\n Logger.Warn = Logger._WarnDisabled;\r\n }\r\n if ((level & Logger.ErrorLogLevel) === Logger.ErrorLogLevel) {\r\n Logger.Error = Logger._ErrorEnabled;\r\n }\r\n else {\r\n Logger.Error = Logger._ErrorDisabled;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * No log\r\n */\r\n Logger.NoneLogLevel = 0;\r\n /**\r\n * Only message logs\r\n */\r\n Logger.MessageLogLevel = 1;\r\n /**\r\n * Only warning logs\r\n */\r\n Logger.WarningLogLevel = 2;\r\n /**\r\n * Only error logs\r\n */\r\n Logger.ErrorLogLevel = 4;\r\n /**\r\n * All logs\r\n */\r\n Logger.AllLogLevel = 7;\r\n Logger._LogCache = \"\";\r\n /**\r\n * Gets a value indicating the number of loading errors\r\n * @ignorenaming\r\n */\r\n Logger.errorsCount = 0;\r\n /**\r\n * Log a message to the console\r\n */\r\n Logger.Log = Logger._LogEnabled;\r\n /**\r\n * Write a warning message to the console\r\n */\r\n Logger.Warn = Logger._WarnEnabled;\r\n /**\r\n * Write an error message to the console\r\n */\r\n Logger.Error = Logger._ErrorEnabled;\r\n return Logger;\r\n}());\r\nexport { Logger };\r\n//# sourceMappingURL=logger.js.map"
  9720. },
  9721. {
  9722. "id": "../../.temp/packageES6Dev/core/Misc/observable.js",
  9723. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\observable.js",
  9724. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/observable.js",
  9725. "index": 5,
  9726. "index2": 2,
  9727. "size": 17013,
  9728. "cacheable": true,
  9729. "built": true,
  9730. "optional": false,
  9731. "prefetched": false,
  9732. "chunks": [
  9733. "thinEngineOnly"
  9734. ],
  9735. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9736. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9737. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9738. "issuerPath": [
  9739. {
  9740. "id": "./thinEngineOnly.ts",
  9741. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  9742. "name": "./thinEngineOnly.ts",
  9743. "profile": {
  9744. "factory": 42,
  9745. "building": 2115
  9746. }
  9747. },
  9748. {
  9749. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9750. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9751. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9752. "profile": {
  9753. "factory": 6,
  9754. "building": 110
  9755. }
  9756. }
  9757. ],
  9758. "profile": {
  9759. "factory": 59,
  9760. "building": 41,
  9761. "dependencies": 4
  9762. },
  9763. "failed": false,
  9764. "errors": 0,
  9765. "warnings": 0,
  9766. "assets": [],
  9767. "reasons": [
  9768. {
  9769. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9770. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9771. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9772. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9773. "type": "harmony side effect evaluation",
  9774. "userRequest": "../Misc/observable",
  9775. "loc": "7:0-48"
  9776. },
  9777. {
  9778. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9779. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9780. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9781. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9782. "type": "harmony import specifier",
  9783. "userRequest": "../Misc/observable",
  9784. "loc": "90:43-53"
  9785. },
  9786. {
  9787. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9788. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9789. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9790. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9791. "type": "harmony import specifier",
  9792. "userRequest": "../Misc/observable",
  9793. "loc": "94:47-57"
  9794. },
  9795. {
  9796. "moduleId": "../../.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  9797. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\Textures\\internalTexture.js",
  9798. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  9799. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  9800. "type": "harmony side effect evaluation",
  9801. "userRequest": "../../Misc/observable",
  9802. "loc": "1:0-51"
  9803. },
  9804. {
  9805. "moduleId": "../../.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  9806. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\Textures\\internalTexture.js",
  9807. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  9808. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/Textures/internalTexture.js",
  9809. "type": "harmony import specifier",
  9810. "userRequest": "../../Misc/observable",
  9811. "loc": "61:38-48"
  9812. },
  9813. {
  9814. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  9815. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  9816. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9817. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9818. "type": "harmony side effect evaluation",
  9819. "userRequest": "../Misc/observable",
  9820. "loc": "1:0-48"
  9821. },
  9822. {
  9823. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  9824. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  9825. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9826. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9827. "type": "harmony import specifier",
  9828. "userRequest": "../Misc/observable",
  9829. "loc": "179:39-49"
  9830. },
  9831. {
  9832. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  9833. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  9834. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9835. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9836. "type": "harmony import specifier",
  9837. "userRequest": "../Misc/observable",
  9838. "loc": "183:37-47"
  9839. },
  9840. {
  9841. "moduleId": "../../.temp/packageES6Dev/core/Materials/effect.js",
  9842. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  9843. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9844. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  9845. "type": "harmony import specifier",
  9846. "userRequest": "../Misc/observable",
  9847. "loc": "296:45-55"
  9848. },
  9849. {
  9850. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  9851. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  9852. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9853. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9854. "type": "harmony side effect evaluation",
  9855. "userRequest": "./observable",
  9856. "loc": "4:0-42"
  9857. },
  9858. {
  9859. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  9860. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  9861. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9862. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9863. "type": "harmony import specifier",
  9864. "userRequest": "./observable",
  9865. "loc": "138:38-48"
  9866. },
  9867. {
  9868. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  9869. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  9870. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9871. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  9872. "type": "harmony import specifier",
  9873. "userRequest": "./observable",
  9874. "loc": "185:38-48"
  9875. }
  9876. ],
  9877. "providedExports": [
  9878. "EventState",
  9879. "Observer",
  9880. "MultiObserver",
  9881. "Observable"
  9882. ],
  9883. "optimizationBailout": [],
  9884. "depth": 2,
  9885. "source": "/**\r\n * A class serves as a medium between the observable and its observers\r\n */\r\nvar EventState = /** @class */ (function () {\r\n /**\r\n * Create a new EventState\r\n * @param mask defines the mask associated with this state\r\n * @param skipNextObservers defines a flag which will instruct the observable to skip following observers when set to true\r\n * @param target defines the original target of the state\r\n * @param currentTarget defines the current target of the state\r\n */\r\n function EventState(mask, skipNextObservers, target, currentTarget) {\r\n if (skipNextObservers === void 0) { skipNextObservers = false; }\r\n this.initalize(mask, skipNextObservers, target, currentTarget);\r\n }\r\n /**\r\n * Initialize the current event state\r\n * @param mask defines the mask associated with this state\r\n * @param skipNextObservers defines a flag which will instruct the observable to skip following observers when set to true\r\n * @param target defines the original target of the state\r\n * @param currentTarget defines the current target of the state\r\n * @returns the current event state\r\n */\r\n EventState.prototype.initalize = function (mask, skipNextObservers, target, currentTarget) {\r\n if (skipNextObservers === void 0) { skipNextObservers = false; }\r\n this.mask = mask;\r\n this.skipNextObservers = skipNextObservers;\r\n this.target = target;\r\n this.currentTarget = currentTarget;\r\n return this;\r\n };\r\n return EventState;\r\n}());\r\nexport { EventState };\r\n/**\r\n * Represent an Observer registered to a given Observable object.\r\n */\r\nvar Observer = /** @class */ (function () {\r\n /**\r\n * Creates a new observer\r\n * @param callback defines the callback to call when the observer is notified\r\n * @param mask defines the mask of the observer (used to filter notifications)\r\n * @param scope defines the current scope used to restore the JS context\r\n */\r\n function Observer(\r\n /**\r\n * Defines the callback to call when the observer is notified\r\n */\r\n callback, \r\n /**\r\n * Defines the mask of the observer (used to filter notifications)\r\n */\r\n mask, \r\n /**\r\n * Defines the current scope used to restore the JS context\r\n */\r\n scope) {\r\n if (scope === void 0) { scope = null; }\r\n this.callback = callback;\r\n this.mask = mask;\r\n this.scope = scope;\r\n /** @hidden */\r\n this._willBeUnregistered = false;\r\n /**\r\n * Gets or sets a property defining that the observer as to be unregistered after the next notification\r\n */\r\n this.unregisterOnNextCall = false;\r\n }\r\n return Observer;\r\n}());\r\nexport { Observer };\r\n/**\r\n * Represent a list of observers registered to multiple Observables object.\r\n */\r\nvar MultiObserver = /** @class */ (function () {\r\n function MultiObserver() {\r\n }\r\n /**\r\n * Release associated resources\r\n */\r\n MultiObserver.prototype.dispose = function () {\r\n if (this._observers && this._observables) {\r\n for (var index = 0; index < this._observers.length; index++) {\r\n this._observables[index].remove(this._observers[index]);\r\n }\r\n }\r\n this._observers = null;\r\n this._observables = null;\r\n };\r\n /**\r\n * Raise a callback when one of the observable will notify\r\n * @param observables defines a list of observables to watch\r\n * @param callback defines the callback to call on notification\r\n * @param mask defines the mask used to filter notifications\r\n * @param scope defines the current scope used to restore the JS context\r\n * @returns the new MultiObserver\r\n */\r\n MultiObserver.Watch = function (observables, callback, mask, scope) {\r\n if (mask === void 0) { mask = -1; }\r\n if (scope === void 0) { scope = null; }\r\n var result = new MultiObserver();\r\n result._observers = new Array();\r\n result._observables = observables;\r\n for (var _i = 0, observables_1 = observables; _i < observables_1.length; _i++) {\r\n var observable = observables_1[_i];\r\n var observer = observable.add(callback, mask, false, scope);\r\n if (observer) {\r\n result._observers.push(observer);\r\n }\r\n }\r\n return result;\r\n };\r\n return MultiObserver;\r\n}());\r\nexport { MultiObserver };\r\n/**\r\n * The Observable class is a simple implementation of the Observable pattern.\r\n *\r\n * There's one slight particularity though: a given Observable can notify its observer using a particular mask value, only the Observers registered with this mask value will be notified.\r\n * This enable a more fine grained execution without having to rely on multiple different Observable objects.\r\n * For instance you may have a given Observable that have four different types of notifications: Move (mask = 0x01), Stop (mask = 0x02), Turn Right (mask = 0X04), Turn Left (mask = 0X08).\r\n * A given observer can register itself with only Move and Stop (mask = 0x03), then it will only be notified when one of these two occurs and will never be for Turn Left/Right.\r\n */\r\nvar Observable = /** @class */ (function () {\r\n /**\r\n * Creates a new observable\r\n * @param onObserverAdded defines a callback to call when a new observer is added\r\n */\r\n function Observable(onObserverAdded) {\r\n this._observers = new Array();\r\n this._eventState = new EventState(0);\r\n if (onObserverAdded) {\r\n this._onObserverAdded = onObserverAdded;\r\n }\r\n }\r\n Object.defineProperty(Observable.prototype, \"observers\", {\r\n /**\r\n * Gets the list of observers\r\n */\r\n get: function () {\r\n return this._observers;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Create a new Observer with the specified callback\r\n * @param callback the callback that will be executed for that Observer\r\n * @param mask the mask used to filter observers\r\n * @param insertFirst if true the callback will be inserted at the first position, hence executed before the others ones. If false (default behavior) the callback will be inserted at the last position, executed after all the others already present.\r\n * @param scope optional scope for the callback to be called from\r\n * @param unregisterOnFirstCall defines if the observer as to be unregistered after the next notification\r\n * @returns the new observer created for the callback\r\n */\r\n Observable.prototype.add = function (callback, mask, insertFirst, scope, unregisterOnFirstCall) {\r\n if (mask === void 0) { mask = -1; }\r\n if (insertFirst === void 0) { insertFirst = false; }\r\n if (scope === void 0) { scope = null; }\r\n if (unregisterOnFirstCall === void 0) { unregisterOnFirstCall = false; }\r\n if (!callback) {\r\n return null;\r\n }\r\n var observer = new Observer(callback, mask, scope);\r\n observer.unregisterOnNextCall = unregisterOnFirstCall;\r\n if (insertFirst) {\r\n this._observers.unshift(observer);\r\n }\r\n else {\r\n this._observers.push(observer);\r\n }\r\n if (this._onObserverAdded) {\r\n this._onObserverAdded(observer);\r\n }\r\n return observer;\r\n };\r\n /**\r\n * Create a new Observer with the specified callback and unregisters after the next notification\r\n * @param callback the callback that will be executed for that Observer\r\n * @returns the new observer created for the callback\r\n */\r\n Observable.prototype.addOnce = function (callback) {\r\n return this.add(callback, undefined, undefined, undefined, true);\r\n };\r\n /**\r\n * Remove an Observer from the Observable object\r\n * @param observer the instance of the Observer to remove\r\n * @returns false if it doesn't belong to this Observable\r\n */\r\n Observable.prototype.remove = function (observer) {\r\n if (!observer) {\r\n return false;\r\n }\r\n var index = this._observers.indexOf(observer);\r\n if (index !== -1) {\r\n this._deferUnregister(observer);\r\n return true;\r\n }\r\n return false;\r\n };\r\n /**\r\n * Remove a callback from the Observable object\r\n * @param callback the callback to remove\r\n * @param scope optional scope. If used only the callbacks with this scope will be removed\r\n * @returns false if it doesn't belong to this Observable\r\n */\r\n Observable.prototype.removeCallback = function (callback, scope) {\r\n for (var index = 0; index < this._observers.length; index++) {\r\n var observer = this._observers[index];\r\n if (observer._willBeUnregistered) {\r\n continue;\r\n }\r\n if (observer.callback === callback && (!scope || scope === observer.scope)) {\r\n this._deferUnregister(observer);\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Observable.prototype._deferUnregister = function (observer) {\r\n var _this = this;\r\n observer.unregisterOnNextCall = false;\r\n observer._willBeUnregistered = true;\r\n setTimeout(function () {\r\n _this._remove(observer);\r\n }, 0);\r\n };\r\n // This should only be called when not iterating over _observers to avoid callback skipping.\r\n // Removes an observer from the _observer Array.\r\n Observable.prototype._remove = function (observer) {\r\n if (!observer) {\r\n return false;\r\n }\r\n var index = this._observers.indexOf(observer);\r\n if (index !== -1) {\r\n this._observers.splice(index, 1);\r\n return true;\r\n }\r\n return false;\r\n };\r\n /**\r\n * Moves the observable to the top of the observer list making it get called first when notified\r\n * @param observer the observer to move\r\n */\r\n Observable.prototype.makeObserverTopPriority = function (observer) {\r\n this._remove(observer);\r\n this._observers.unshift(observer);\r\n };\r\n /**\r\n * Moves the observable to the bottom of the observer list making it get called last when notified\r\n * @param observer the observer to move\r\n */\r\n Observable.prototype.makeObserverBottomPriority = function (observer) {\r\n this._remove(observer);\r\n this._observers.push(observer);\r\n };\r\n /**\r\n * Notify all Observers by calling their respective callback with the given data\r\n * Will return true if all observers were executed, false if an observer set skipNextObservers to true, then prevent the subsequent ones to execute\r\n * @param eventData defines the data to send to all observers\r\n * @param mask defines the mask of the current notification (observers with incompatible mask (ie mask & observer.mask === 0) will not be notified)\r\n * @param target defines the original target of the state\r\n * @param currentTarget defines the current target of the state\r\n * @returns false if the complete observer chain was not processed (because one observer set the skipNextObservers to true)\r\n */\r\n Observable.prototype.notifyObservers = function (eventData, mask, target, currentTarget) {\r\n if (mask === void 0) { mask = -1; }\r\n if (!this._observers.length) {\r\n return true;\r\n }\r\n var state = this._eventState;\r\n state.mask = mask;\r\n state.target = target;\r\n state.currentTarget = currentTarget;\r\n state.skipNextObservers = false;\r\n state.lastReturnValue = eventData;\r\n for (var _i = 0, _a = this._observers; _i < _a.length; _i++) {\r\n var obs = _a[_i];\r\n if (obs._willBeUnregistered) {\r\n continue;\r\n }\r\n if (obs.mask & mask) {\r\n if (obs.scope) {\r\n state.lastReturnValue = obs.callback.apply(obs.scope, [eventData, state]);\r\n }\r\n else {\r\n state.lastReturnValue = obs.callback(eventData, state);\r\n }\r\n if (obs.unregisterOnNextCall) {\r\n this._deferUnregister(obs);\r\n }\r\n }\r\n if (state.skipNextObservers) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n /**\r\n * Calling this will execute each callback, expecting it to be a promise or return a value.\r\n * If at any point in the chain one function fails, the promise will fail and the execution will not continue.\r\n * This is useful when a chain of events (sometimes async events) is needed to initialize a certain object\r\n * and it is crucial that all callbacks will be executed.\r\n * The order of the callbacks is kept, callbacks are not executed parallel.\r\n *\r\n * @param eventData The data to be sent to each callback\r\n * @param mask is used to filter observers defaults to -1\r\n * @param target defines the callback target (see EventState)\r\n * @param currentTarget defines he current object in the bubbling phase\r\n * @returns {Promise<T>} will return a Promise than resolves when all callbacks executed successfully.\r\n */\r\n Observable.prototype.notifyObserversWithPromise = function (eventData, mask, target, currentTarget) {\r\n var _this = this;\r\n if (mask === void 0) { mask = -1; }\r\n // create an empty promise\r\n var p = Promise.resolve(eventData);\r\n // no observers? return this promise.\r\n if (!this._observers.length) {\r\n return p;\r\n }\r\n var state = this._eventState;\r\n state.mask = mask;\r\n state.target = target;\r\n state.currentTarget = currentTarget;\r\n state.skipNextObservers = false;\r\n // execute one callback after another (not using Promise.all, the order is important)\r\n this._observers.forEach(function (obs) {\r\n if (state.skipNextObservers) {\r\n return;\r\n }\r\n if (obs._willBeUnregistered) {\r\n return;\r\n }\r\n if (obs.mask & mask) {\r\n if (obs.scope) {\r\n p = p.then(function (lastReturnedValue) {\r\n state.lastReturnValue = lastReturnedValue;\r\n return obs.callback.apply(obs.scope, [eventData, state]);\r\n });\r\n }\r\n else {\r\n p = p.then(function (lastReturnedValue) {\r\n state.lastReturnValue = lastReturnedValue;\r\n return obs.callback(eventData, state);\r\n });\r\n }\r\n if (obs.unregisterOnNextCall) {\r\n _this._deferUnregister(obs);\r\n }\r\n }\r\n });\r\n // return the eventData\r\n return p.then(function () { return eventData; });\r\n };\r\n /**\r\n * Notify a specific observer\r\n * @param observer defines the observer to notify\r\n * @param eventData defines the data to be sent to each callback\r\n * @param mask is used to filter observers defaults to -1\r\n */\r\n Observable.prototype.notifyObserver = function (observer, eventData, mask) {\r\n if (mask === void 0) { mask = -1; }\r\n var state = this._eventState;\r\n state.mask = mask;\r\n state.skipNextObservers = false;\r\n observer.callback(eventData, state);\r\n };\r\n /**\r\n * Gets a boolean indicating if the observable has at least one observer\r\n * @returns true is the Observable has at least one Observer registered\r\n */\r\n Observable.prototype.hasObservers = function () {\r\n return this._observers.length > 0;\r\n };\r\n /**\r\n * Clear the list of observers\r\n */\r\n Observable.prototype.clear = function () {\r\n this._observers = new Array();\r\n this._onObserverAdded = null;\r\n };\r\n /**\r\n * Clone the current observable\r\n * @returns a new observable\r\n */\r\n Observable.prototype.clone = function () {\r\n var result = new Observable();\r\n result._observers = this._observers.slice(0);\r\n return result;\r\n };\r\n /**\r\n * Does this observable handles observer registered with a given mask\r\n * @param mask defines the mask to be tested\r\n * @return whether or not one observer registered with the given mask is handeled\r\n **/\r\n Observable.prototype.hasSpecificMask = function (mask) {\r\n if (mask === void 0) { mask = -1; }\r\n for (var _i = 0, _a = this._observers; _i < _a.length; _i++) {\r\n var obs = _a[_i];\r\n if (obs.mask & mask || obs.mask === mask) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n return Observable;\r\n}());\r\nexport { Observable };\r\n//# sourceMappingURL=observable.js.map"
  9886. },
  9887. {
  9888. "id": "../../.temp/packageES6Dev/core/Misc/perfCounter.js",
  9889. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\perfCounter.js",
  9890. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/perfCounter.js",
  9891. "index": 27,
  9892. "index2": 26,
  9893. "size": 6408,
  9894. "cacheable": true,
  9895. "built": true,
  9896. "optional": false,
  9897. "prefetched": false,
  9898. "chunks": [
  9899. "thinEngineOnly"
  9900. ],
  9901. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9902. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9903. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9904. "issuerPath": [
  9905. {
  9906. "id": "./thinEngineOnly.ts",
  9907. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  9908. "name": "./thinEngineOnly.ts",
  9909. "profile": {
  9910. "factory": 42,
  9911. "building": 2115
  9912. }
  9913. },
  9914. {
  9915. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9916. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9917. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9918. "profile": {
  9919. "factory": 6,
  9920. "building": 110
  9921. }
  9922. }
  9923. ],
  9924. "profile": {
  9925. "factory": 59,
  9926. "building": 41,
  9927. "dependencies": 4
  9928. },
  9929. "failed": false,
  9930. "errors": 0,
  9931. "warnings": 0,
  9932. "assets": [],
  9933. "reasons": [
  9934. {
  9935. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9936. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9937. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9938. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9939. "type": "harmony side effect evaluation",
  9940. "userRequest": "../Misc/perfCounter",
  9941. "loc": "6:0-50"
  9942. },
  9943. {
  9944. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9945. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9946. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9947. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9948. "type": "harmony import specifier",
  9949. "userRequest": "../Misc/perfCounter",
  9950. "loc": "83:30-41"
  9951. }
  9952. ],
  9953. "providedExports": [
  9954. "PerfCounter"
  9955. ],
  9956. "optimizationBailout": [],
  9957. "depth": 2,
  9958. "source": "import { PrecisionDate } from './precisionDate';\r\n/**\r\n * This class is used to track a performance counter which is number based.\r\n * The user has access to many properties which give statistics of different nature.\r\n *\r\n * The implementer can track two kinds of Performance Counter: time and count.\r\n * For time you can optionally call fetchNewFrame() to notify the start of a new frame to monitor, then call beginMonitoring() to start and endMonitoring() to record the lapsed time. endMonitoring takes a newFrame parameter for you to specify if the monitored time should be set for a new frame or accumulated to the current frame being monitored.\r\n * For count you first have to call fetchNewFrame() to notify the start of a new frame to monitor, then call addCount() how many time required to increment the count value you monitor.\r\n */\r\nvar PerfCounter = /** @class */ (function () {\r\n /**\r\n * Creates a new counter\r\n */\r\n function PerfCounter() {\r\n this._startMonitoringTime = 0;\r\n this._min = 0;\r\n this._max = 0;\r\n this._average = 0;\r\n this._lastSecAverage = 0;\r\n this._current = 0;\r\n this._totalValueCount = 0;\r\n this._totalAccumulated = 0;\r\n this._lastSecAccumulated = 0;\r\n this._lastSecTime = 0;\r\n this._lastSecValueCount = 0;\r\n }\r\n Object.defineProperty(PerfCounter.prototype, \"min\", {\r\n /**\r\n * Returns the smallest value ever\r\n */\r\n get: function () {\r\n return this._min;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PerfCounter.prototype, \"max\", {\r\n /**\r\n * Returns the biggest value ever\r\n */\r\n get: function () {\r\n return this._max;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PerfCounter.prototype, \"average\", {\r\n /**\r\n * Returns the average value since the performance counter is running\r\n */\r\n get: function () {\r\n return this._average;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PerfCounter.prototype, \"lastSecAverage\", {\r\n /**\r\n * Returns the average value of the last second the counter was monitored\r\n */\r\n get: function () {\r\n return this._lastSecAverage;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PerfCounter.prototype, \"current\", {\r\n /**\r\n * Returns the current value\r\n */\r\n get: function () {\r\n return this._current;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PerfCounter.prototype, \"total\", {\r\n /**\r\n * Gets the accumulated total\r\n */\r\n get: function () {\r\n return this._totalAccumulated;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PerfCounter.prototype, \"count\", {\r\n /**\r\n * Gets the total value count\r\n */\r\n get: function () {\r\n return this._totalValueCount;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Call this method to start monitoring a new frame.\r\n * This scenario is typically used when you accumulate monitoring time many times for a single frame, you call this method at the start of the frame, then beginMonitoring to start recording and endMonitoring(false) to accumulated the recorded time to the PerfCounter or addCount() to accumulate a monitored count.\r\n */\r\n PerfCounter.prototype.fetchNewFrame = function () {\r\n this._totalValueCount++;\r\n this._current = 0;\r\n this._lastSecValueCount++;\r\n };\r\n /**\r\n * Call this method to monitor a count of something (e.g. mesh drawn in viewport count)\r\n * @param newCount the count value to add to the monitored count\r\n * @param fetchResult true when it's the last time in the frame you add to the counter and you wish to update the statistics properties (min/max/average), false if you only want to update statistics.\r\n */\r\n PerfCounter.prototype.addCount = function (newCount, fetchResult) {\r\n if (!PerfCounter.Enabled) {\r\n return;\r\n }\r\n this._current += newCount;\r\n if (fetchResult) {\r\n this._fetchResult();\r\n }\r\n };\r\n /**\r\n * Start monitoring this performance counter\r\n */\r\n PerfCounter.prototype.beginMonitoring = function () {\r\n if (!PerfCounter.Enabled) {\r\n return;\r\n }\r\n this._startMonitoringTime = PrecisionDate.Now;\r\n };\r\n /**\r\n * Compute the time lapsed since the previous beginMonitoring() call.\r\n * @param newFrame true by default to fetch the result and monitor a new frame, if false the time monitored will be added to the current frame counter\r\n */\r\n PerfCounter.prototype.endMonitoring = function (newFrame) {\r\n if (newFrame === void 0) { newFrame = true; }\r\n if (!PerfCounter.Enabled) {\r\n return;\r\n }\r\n if (newFrame) {\r\n this.fetchNewFrame();\r\n }\r\n var currentTime = PrecisionDate.Now;\r\n this._current = currentTime - this._startMonitoringTime;\r\n if (newFrame) {\r\n this._fetchResult();\r\n }\r\n };\r\n PerfCounter.prototype._fetchResult = function () {\r\n this._totalAccumulated += this._current;\r\n this._lastSecAccumulated += this._current;\r\n // Min/Max update\r\n this._min = Math.min(this._min, this._current);\r\n this._max = Math.max(this._max, this._current);\r\n this._average = this._totalAccumulated / this._totalValueCount;\r\n // Reset last sec?\r\n var now = PrecisionDate.Now;\r\n if ((now - this._lastSecTime) > 1000) {\r\n this._lastSecAverage = this._lastSecAccumulated / this._lastSecValueCount;\r\n this._lastSecTime = now;\r\n this._lastSecAccumulated = 0;\r\n this._lastSecValueCount = 0;\r\n }\r\n };\r\n /**\r\n * Gets or sets a global boolean to turn on and off all the counters\r\n */\r\n PerfCounter.Enabled = true;\r\n return PerfCounter;\r\n}());\r\nexport { PerfCounter };\r\n//# sourceMappingURL=perfCounter.js.map"
  9959. },
  9960. {
  9961. "id": "../../.temp/packageES6Dev/core/Misc/precisionDate.js",
  9962. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\precisionDate.js",
  9963. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/precisionDate.js",
  9964. "index": 28,
  9965. "index2": 25,
  9966. "size": 790,
  9967. "cacheable": true,
  9968. "built": true,
  9969. "optional": false,
  9970. "prefetched": false,
  9971. "chunks": [
  9972. "thinEngineOnly"
  9973. ],
  9974. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\perfCounter.js",
  9975. "issuerId": "../../.temp/packageES6Dev/core/Misc/perfCounter.js",
  9976. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/perfCounter.js",
  9977. "issuerPath": [
  9978. {
  9979. "id": "./thinEngineOnly.ts",
  9980. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  9981. "name": "./thinEngineOnly.ts",
  9982. "profile": {
  9983. "factory": 42,
  9984. "building": 2115
  9985. }
  9986. },
  9987. {
  9988. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  9989. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  9990. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  9991. "profile": {
  9992. "factory": 6,
  9993. "building": 110
  9994. }
  9995. },
  9996. {
  9997. "id": "../../.temp/packageES6Dev/core/Misc/perfCounter.js",
  9998. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\perfCounter.js",
  9999. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/perfCounter.js",
  10000. "profile": {
  10001. "factory": 59,
  10002. "building": 41,
  10003. "dependencies": 4
  10004. }
  10005. }
  10006. ],
  10007. "profile": {
  10008. "factory": 69,
  10009. "building": 15,
  10010. "dependencies": 0
  10011. },
  10012. "failed": false,
  10013. "errors": 0,
  10014. "warnings": 0,
  10015. "assets": [],
  10016. "reasons": [
  10017. {
  10018. "moduleId": "../../.temp/packageES6Dev/core/Misc/perfCounter.js",
  10019. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\perfCounter.js",
  10020. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/perfCounter.js",
  10021. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/perfCounter.js",
  10022. "type": "harmony side effect evaluation",
  10023. "userRequest": "./precisionDate",
  10024. "loc": "1:0-48"
  10025. },
  10026. {
  10027. "moduleId": "../../.temp/packageES6Dev/core/Misc/perfCounter.js",
  10028. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\perfCounter.js",
  10029. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/perfCounter.js",
  10030. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/perfCounter.js",
  10031. "type": "harmony import specifier",
  10032. "userRequest": "./precisionDate",
  10033. "loc": "127:36-49"
  10034. },
  10035. {
  10036. "moduleId": "../../.temp/packageES6Dev/core/Misc/perfCounter.js",
  10037. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\perfCounter.js",
  10038. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/perfCounter.js",
  10039. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/perfCounter.js",
  10040. "type": "harmony import specifier",
  10041. "userRequest": "./precisionDate",
  10042. "loc": "141:26-39"
  10043. },
  10044. {
  10045. "moduleId": "../../.temp/packageES6Dev/core/Misc/perfCounter.js",
  10046. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\perfCounter.js",
  10047. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/perfCounter.js",
  10048. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/perfCounter.js",
  10049. "type": "harmony import specifier",
  10050. "userRequest": "./precisionDate",
  10051. "loc": "155:18-31"
  10052. }
  10053. ],
  10054. "providedExports": [
  10055. "PrecisionDate"
  10056. ],
  10057. "optimizationBailout": [],
  10058. "depth": 3,
  10059. "source": "import { DomManagement } from './domManagement';\r\n/**\r\n * Class containing a set of static utilities functions for precision date\r\n */\r\nvar PrecisionDate = /** @class */ (function () {\r\n function PrecisionDate() {\r\n }\r\n Object.defineProperty(PrecisionDate, \"Now\", {\r\n /**\r\n * Gets either window.performance.now() if supported or Date.now() else\r\n */\r\n get: function () {\r\n if (DomManagement.IsWindowObjectExist() && window.performance && window.performance.now) {\r\n return window.performance.now();\r\n }\r\n return Date.now();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return PrecisionDate;\r\n}());\r\nexport { PrecisionDate };\r\n//# sourceMappingURL=precisionDate.js.map"
  10060. },
  10061. {
  10062. "id": "../../.temp/packageES6Dev/core/Misc/retryStrategy.js",
  10063. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\retryStrategy.js",
  10064. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/retryStrategy.js",
  10065. "index": 24,
  10066. "index2": 19,
  10067. "size": 1030,
  10068. "cacheable": true,
  10069. "built": true,
  10070. "optional": false,
  10071. "prefetched": false,
  10072. "chunks": [
  10073. "thinEngineOnly"
  10074. ],
  10075. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  10076. "issuerId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  10077. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  10078. "issuerPath": [
  10079. {
  10080. "id": "./thinEngineOnly.ts",
  10081. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  10082. "name": "./thinEngineOnly.ts",
  10083. "profile": {
  10084. "factory": 42,
  10085. "building": 2115
  10086. }
  10087. },
  10088. {
  10089. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  10090. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  10091. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  10092. "profile": {
  10093. "factory": 6,
  10094. "building": 110
  10095. }
  10096. },
  10097. {
  10098. "id": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  10099. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  10100. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  10101. "profile": {
  10102. "factory": 59,
  10103. "building": 41,
  10104. "dependencies": 4
  10105. }
  10106. }
  10107. ],
  10108. "profile": {
  10109. "factory": 61,
  10110. "building": 8,
  10111. "dependencies": 2
  10112. },
  10113. "failed": false,
  10114. "errors": 0,
  10115. "warnings": 0,
  10116. "assets": [],
  10117. "reasons": [
  10118. {
  10119. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  10120. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  10121. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  10122. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  10123. "type": "harmony side effect evaluation",
  10124. "userRequest": "./retryStrategy",
  10125. "loc": "6:0-48"
  10126. },
  10127. {
  10128. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  10129. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  10130. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  10131. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  10132. "type": "harmony import specifier",
  10133. "userRequest": "./retryStrategy",
  10134. "loc": "301:37-50"
  10135. }
  10136. ],
  10137. "providedExports": [
  10138. "RetryStrategy"
  10139. ],
  10140. "optimizationBailout": [],
  10141. "depth": 3,
  10142. "source": "/**\r\n * Class used to define a retry strategy when error happens while loading assets\r\n */\r\nvar RetryStrategy = /** @class */ (function () {\r\n function RetryStrategy() {\r\n }\r\n /**\r\n * Function used to defines an exponential back off strategy\r\n * @param maxRetries defines the maximum number of retries (3 by default)\r\n * @param baseInterval defines the interval between retries\r\n * @returns the strategy function to use\r\n */\r\n RetryStrategy.ExponentialBackoff = function (maxRetries, baseInterval) {\r\n if (maxRetries === void 0) { maxRetries = 3; }\r\n if (baseInterval === void 0) { baseInterval = 500; }\r\n return function (url, request, retryIndex) {\r\n if (request.status !== 0 || retryIndex >= maxRetries || url.indexOf(\"file:\") !== -1) {\r\n return -1;\r\n }\r\n return Math.pow(2, retryIndex) * baseInterval;\r\n };\r\n };\r\n return RetryStrategy;\r\n}());\r\nexport { RetryStrategy };\r\n//# sourceMappingURL=retryStrategy.js.map"
  10143. },
  10144. {
  10145. "id": "../../.temp/packageES6Dev/core/Misc/stringTools.js",
  10146. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\stringTools.js",
  10147. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/stringTools.js",
  10148. "index": 11,
  10149. "index2": 6,
  10150. "size": 1033,
  10151. "cacheable": true,
  10152. "built": true,
  10153. "optional": false,
  10154. "prefetched": false,
  10155. "chunks": [
  10156. "thinEngineOnly"
  10157. ],
  10158. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeNode.js",
  10159. "issuerId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  10160. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  10161. "issuerPath": [
  10162. {
  10163. "id": "./thinEngineOnly.ts",
  10164. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  10165. "name": "./thinEngineOnly.ts",
  10166. "profile": {
  10167. "factory": 42,
  10168. "building": 2115
  10169. }
  10170. },
  10171. {
  10172. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  10173. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  10174. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  10175. "profile": {
  10176. "factory": 6,
  10177. "building": 110
  10178. }
  10179. },
  10180. {
  10181. "id": "../../.temp/packageES6Dev/core/Materials/effect.js",
  10182. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Materials\\effect.js",
  10183. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Materials/effect.js",
  10184. "profile": {
  10185. "factory": 59,
  10186. "building": 41,
  10187. "dependencies": 4
  10188. }
  10189. },
  10190. {
  10191. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  10192. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderProcessor.js",
  10193. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderProcessor.js",
  10194. "profile": {
  10195. "factory": 25,
  10196. "building": 9,
  10197. "dependencies": 2
  10198. }
  10199. },
  10200. {
  10201. "id": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  10202. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeNode.js",
  10203. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  10204. "profile": {
  10205. "factory": 6,
  10206. "building": 12,
  10207. "dependencies": 4
  10208. }
  10209. }
  10210. ],
  10211. "profile": {
  10212. "factory": 12,
  10213. "building": 1
  10214. },
  10215. "failed": false,
  10216. "errors": 0,
  10217. "warnings": 0,
  10218. "assets": [],
  10219. "reasons": [
  10220. {
  10221. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  10222. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeNode.js",
  10223. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  10224. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  10225. "type": "harmony side effect evaluation",
  10226. "userRequest": "../../Misc/stringTools",
  10227. "loc": "1:0-53"
  10228. },
  10229. {
  10230. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  10231. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeNode.js",
  10232. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  10233. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  10234. "type": "harmony import specifier",
  10235. "userRequest": "../../Misc/stringTools",
  10236. "loc": "20:52-63"
  10237. },
  10238. {
  10239. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  10240. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeNode.js",
  10241. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  10242. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  10243. "type": "harmony import specifier",
  10244. "userRequest": "../../Misc/stringTools",
  10245. "loc": "23:55-66"
  10246. },
  10247. {
  10248. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  10249. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeNode.js",
  10250. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  10251. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeNode.js",
  10252. "type": "harmony import specifier",
  10253. "userRequest": "../../Misc/stringTools",
  10254. "loc": "26:93-104"
  10255. }
  10256. ],
  10257. "providedExports": [
  10258. "StringTools"
  10259. ],
  10260. "optimizationBailout": [],
  10261. "depth": 5,
  10262. "source": "/**\r\n * Helper to manipulate strings\r\n */\r\nvar StringTools = /** @class */ (function () {\r\n function StringTools() {\r\n }\r\n /**\r\n * Checks for a matching suffix at the end of a string (for ES5 and lower)\r\n * @param str Source string\r\n * @param suffix Suffix to search for in the source string\r\n * @returns Boolean indicating whether the suffix was found (true) or not (false)\r\n */\r\n StringTools.EndsWith = function (str, suffix) {\r\n return str.indexOf(suffix, str.length - suffix.length) !== -1;\r\n };\r\n /**\r\n * Checks for a matching suffix at the beginning of a string (for ES5 and lower)\r\n * @param str Source string\r\n * @param suffix Suffix to search for in the source string\r\n * @returns Boolean indicating whether the suffix was found (true) or not (false)\r\n */\r\n StringTools.StartsWith = function (str, suffix) {\r\n return str.indexOf(suffix) === 0;\r\n };\r\n return StringTools;\r\n}());\r\nexport { StringTools };\r\n//# sourceMappingURL=stringTools.js.map"
  10263. },
  10264. {
  10265. "id": "../../.temp/packageES6Dev/core/Misc/webRequest.js",
  10266. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\webRequest.js",
  10267. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/webRequest.js",
  10268. "index": 21,
  10269. "index2": 16,
  10270. "size": 4915,
  10271. "cacheable": true,
  10272. "built": true,
  10273. "optional": false,
  10274. "prefetched": false,
  10275. "chunks": [
  10276. "thinEngineOnly"
  10277. ],
  10278. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  10279. "issuerId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  10280. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  10281. "issuerPath": [
  10282. {
  10283. "id": "./thinEngineOnly.ts",
  10284. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  10285. "name": "./thinEngineOnly.ts",
  10286. "profile": {
  10287. "factory": 42,
  10288. "building": 2115
  10289. }
  10290. },
  10291. {
  10292. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  10293. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  10294. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  10295. "profile": {
  10296. "factory": 6,
  10297. "building": 110
  10298. }
  10299. },
  10300. {
  10301. "id": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  10302. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  10303. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  10304. "profile": {
  10305. "factory": 59,
  10306. "building": 41,
  10307. "dependencies": 4
  10308. }
  10309. }
  10310. ],
  10311. "profile": {
  10312. "factory": 61,
  10313. "building": 8,
  10314. "dependencies": 2
  10315. },
  10316. "failed": false,
  10317. "errors": 0,
  10318. "warnings": 0,
  10319. "assets": [],
  10320. "reasons": [
  10321. {
  10322. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  10323. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  10324. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  10325. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  10326. "type": "harmony side effect evaluation",
  10327. "userRequest": "./webRequest",
  10328. "loc": "1:0-42"
  10329. },
  10330. {
  10331. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  10332. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  10333. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  10334. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  10335. "type": "harmony import specifier",
  10336. "userRequest": "./webRequest",
  10337. "loc": "189:30-40"
  10338. },
  10339. {
  10340. "moduleId": "../../.temp/packageES6Dev/core/Misc/fileTools.js",
  10341. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\fileTools.js",
  10342. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  10343. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/fileTools.js",
  10344. "type": "harmony import specifier",
  10345. "userRequest": "./webRequest",
  10346. "loc": "233:46-56"
  10347. }
  10348. ],
  10349. "providedExports": [
  10350. "WebRequest"
  10351. ],
  10352. "optimizationBailout": [],
  10353. "depth": 3,
  10354. "source": "/**\r\n * Extended version of XMLHttpRequest with support for customizations (headers, ...)\r\n */\r\nvar WebRequest = /** @class */ (function () {\r\n function WebRequest() {\r\n this._xhr = new XMLHttpRequest();\r\n }\r\n WebRequest.prototype._injectCustomRequestHeaders = function () {\r\n for (var key in WebRequest.CustomRequestHeaders) {\r\n var val = WebRequest.CustomRequestHeaders[key];\r\n if (val) {\r\n this._xhr.setRequestHeader(key, val);\r\n }\r\n }\r\n };\r\n Object.defineProperty(WebRequest.prototype, \"onprogress\", {\r\n /**\r\n * Gets or sets a function to be called when loading progress changes\r\n */\r\n get: function () {\r\n return this._xhr.onprogress;\r\n },\r\n set: function (value) {\r\n this._xhr.onprogress = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WebRequest.prototype, \"readyState\", {\r\n /**\r\n * Returns client's state\r\n */\r\n get: function () {\r\n return this._xhr.readyState;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WebRequest.prototype, \"status\", {\r\n /**\r\n * Returns client's status\r\n */\r\n get: function () {\r\n return this._xhr.status;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WebRequest.prototype, \"statusText\", {\r\n /**\r\n * Returns client's status as a text\r\n */\r\n get: function () {\r\n return this._xhr.statusText;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WebRequest.prototype, \"response\", {\r\n /**\r\n * Returns client's response\r\n */\r\n get: function () {\r\n return this._xhr.response;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WebRequest.prototype, \"responseURL\", {\r\n /**\r\n * Returns client's response url\r\n */\r\n get: function () {\r\n return this._xhr.responseURL;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WebRequest.prototype, \"responseText\", {\r\n /**\r\n * Returns client's response as text\r\n */\r\n get: function () {\r\n return this._xhr.responseText;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WebRequest.prototype, \"responseType\", {\r\n /**\r\n * Gets or sets the expected response type\r\n */\r\n get: function () {\r\n return this._xhr.responseType;\r\n },\r\n set: function (value) {\r\n this._xhr.responseType = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n WebRequest.prototype.addEventListener = function (type, listener, options) {\r\n this._xhr.addEventListener(type, listener, options);\r\n };\r\n WebRequest.prototype.removeEventListener = function (type, listener, options) {\r\n this._xhr.removeEventListener(type, listener, options);\r\n };\r\n /**\r\n * Cancels any network activity\r\n */\r\n WebRequest.prototype.abort = function () {\r\n this._xhr.abort();\r\n };\r\n /**\r\n * Initiates the request. The optional argument provides the request body. The argument is ignored if request method is GET or HEAD\r\n * @param body defines an optional request body\r\n */\r\n WebRequest.prototype.send = function (body) {\r\n if (WebRequest.CustomRequestHeaders) {\r\n this._injectCustomRequestHeaders();\r\n }\r\n this._xhr.send(body);\r\n };\r\n /**\r\n * Sets the request method, request URL\r\n * @param method defines the method to use (GET, POST, etc..)\r\n * @param url defines the url to connect with\r\n */\r\n WebRequest.prototype.open = function (method, url) {\r\n for (var _i = 0, _a = WebRequest.CustomRequestModifiers; _i < _a.length; _i++) {\r\n var update = _a[_i];\r\n update(this._xhr, url);\r\n }\r\n // Clean url\r\n url = url.replace(\"file:http:\", \"http:\");\r\n url = url.replace(\"file:https:\", \"https:\");\r\n return this._xhr.open(method, url, true);\r\n };\r\n /**\r\n * Custom HTTP Request Headers to be sent with XMLHttpRequests\r\n * i.e. when loading files, where the server/service expects an Authorization header\r\n */\r\n WebRequest.CustomRequestHeaders = {};\r\n /**\r\n * Add callback functions in this array to update all the requests before they get sent to the network\r\n */\r\n WebRequest.CustomRequestModifiers = new Array();\r\n return WebRequest;\r\n}());\r\nexport { WebRequest };\r\n//# sourceMappingURL=webRequest.js.map"
  10355. },
  10356. {
  10357. "id": "../../.temp/packageES6Dev/core/States/alphaCullingState.js",
  10358. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\States\\alphaCullingState.js",
  10359. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/States/alphaCullingState.js",
  10360. "index": 31,
  10361. "index2": 29,
  10362. "size": 4862,
  10363. "cacheable": true,
  10364. "built": true,
  10365. "optional": false,
  10366. "prefetched": false,
  10367. "chunks": [
  10368. "thinEngineOnly"
  10369. ],
  10370. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  10371. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  10372. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  10373. "issuerPath": [
  10374. {
  10375. "id": "./thinEngineOnly.ts",
  10376. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  10377. "name": "./thinEngineOnly.ts",
  10378. "profile": {
  10379. "factory": 42,
  10380. "building": 2115
  10381. }
  10382. },
  10383. {
  10384. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  10385. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  10386. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  10387. "profile": {
  10388. "factory": 6,
  10389. "building": 110
  10390. }
  10391. }
  10392. ],
  10393. "profile": {
  10394. "factory": 59,
  10395. "building": 41,
  10396. "dependencies": 4
  10397. },
  10398. "failed": false,
  10399. "errors": 0,
  10400. "warnings": 0,
  10401. "assets": [],
  10402. "reasons": [
  10403. {
  10404. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  10405. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  10406. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  10407. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  10408. "type": "harmony side effect evaluation",
  10409. "userRequest": "../States/alphaCullingState",
  10410. "loc": "10:0-57"
  10411. },
  10412. {
  10413. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  10414. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  10415. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  10416. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  10417. "type": "harmony import specifier",
  10418. "userRequest": "../States/alphaCullingState",
  10419. "loc": "108:31-41"
  10420. }
  10421. ],
  10422. "providedExports": [
  10423. "AlphaState"
  10424. ],
  10425. "optimizationBailout": [],
  10426. "depth": 2,
  10427. "source": "/**\r\n * @hidden\r\n **/\r\nvar AlphaState = /** @class */ (function () {\r\n /**\r\n * Initializes the state.\r\n */\r\n function AlphaState() {\r\n this._isAlphaBlendDirty = false;\r\n this._isBlendFunctionParametersDirty = false;\r\n this._isBlendEquationParametersDirty = false;\r\n this._isBlendConstantsDirty = false;\r\n this._alphaBlend = false;\r\n this._blendFunctionParameters = new Array(4);\r\n this._blendEquationParameters = new Array(2);\r\n this._blendConstants = new Array(4);\r\n this.reset();\r\n }\r\n Object.defineProperty(AlphaState.prototype, \"isDirty\", {\r\n get: function () {\r\n return this._isAlphaBlendDirty || this._isBlendFunctionParametersDirty;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AlphaState.prototype, \"alphaBlend\", {\r\n get: function () {\r\n return this._alphaBlend;\r\n },\r\n set: function (value) {\r\n if (this._alphaBlend === value) {\r\n return;\r\n }\r\n this._alphaBlend = value;\r\n this._isAlphaBlendDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n AlphaState.prototype.setAlphaBlendConstants = function (r, g, b, a) {\r\n if (this._blendConstants[0] === r &&\r\n this._blendConstants[1] === g &&\r\n this._blendConstants[2] === b &&\r\n this._blendConstants[3] === a) {\r\n return;\r\n }\r\n this._blendConstants[0] = r;\r\n this._blendConstants[1] = g;\r\n this._blendConstants[2] = b;\r\n this._blendConstants[3] = a;\r\n this._isBlendConstantsDirty = true;\r\n };\r\n AlphaState.prototype.setAlphaBlendFunctionParameters = function (value0, value1, value2, value3) {\r\n if (this._blendFunctionParameters[0] === value0 &&\r\n this._blendFunctionParameters[1] === value1 &&\r\n this._blendFunctionParameters[2] === value2 &&\r\n this._blendFunctionParameters[3] === value3) {\r\n return;\r\n }\r\n this._blendFunctionParameters[0] = value0;\r\n this._blendFunctionParameters[1] = value1;\r\n this._blendFunctionParameters[2] = value2;\r\n this._blendFunctionParameters[3] = value3;\r\n this._isBlendFunctionParametersDirty = true;\r\n };\r\n AlphaState.prototype.setAlphaEquationParameters = function (rgb, alpha) {\r\n if (this._blendEquationParameters[0] === rgb &&\r\n this._blendEquationParameters[1] === alpha) {\r\n return;\r\n }\r\n this._blendEquationParameters[0] = rgb;\r\n this._blendEquationParameters[1] = alpha;\r\n this._isBlendEquationParametersDirty = true;\r\n };\r\n AlphaState.prototype.reset = function () {\r\n this._alphaBlend = false;\r\n this._blendFunctionParameters[0] = null;\r\n this._blendFunctionParameters[1] = null;\r\n this._blendFunctionParameters[2] = null;\r\n this._blendFunctionParameters[3] = null;\r\n this._blendEquationParameters[0] = null;\r\n this._blendEquationParameters[1] = null;\r\n this._blendConstants[0] = null;\r\n this._blendConstants[1] = null;\r\n this._blendConstants[2] = null;\r\n this._blendConstants[3] = null;\r\n this._isAlphaBlendDirty = true;\r\n this._isBlendFunctionParametersDirty = false;\r\n this._isBlendEquationParametersDirty = false;\r\n this._isBlendConstantsDirty = false;\r\n };\r\n AlphaState.prototype.apply = function (gl) {\r\n if (!this.isDirty) {\r\n return;\r\n }\r\n // Alpha blend\r\n if (this._isAlphaBlendDirty) {\r\n if (this._alphaBlend) {\r\n gl.enable(gl.BLEND);\r\n }\r\n else {\r\n gl.disable(gl.BLEND);\r\n }\r\n this._isAlphaBlendDirty = false;\r\n }\r\n // Alpha function\r\n if (this._isBlendFunctionParametersDirty) {\r\n gl.blendFuncSeparate(this._blendFunctionParameters[0], this._blendFunctionParameters[1], this._blendFunctionParameters[2], this._blendFunctionParameters[3]);\r\n this._isBlendFunctionParametersDirty = false;\r\n }\r\n // Alpha equation\r\n if (this._isBlendEquationParametersDirty) {\r\n gl.blendEquationSeparate(this._blendEquationParameters[0], this._blendEquationParameters[1]);\r\n this._isBlendEquationParametersDirty = false;\r\n }\r\n // Constants\r\n if (this._isBlendConstantsDirty) {\r\n gl.blendColor(this._blendConstants[0], this._blendConstants[1], this._blendConstants[2], this._blendConstants[3]);\r\n this._isBlendConstantsDirty = false;\r\n }\r\n };\r\n return AlphaState;\r\n}());\r\nexport { AlphaState };\r\n//# sourceMappingURL=alphaCullingState.js.map"
  10428. },
  10429. {
  10430. "id": "../../.temp/packageES6Dev/core/States/depthCullingState.js",
  10431. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\States\\depthCullingState.js",
  10432. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/States/depthCullingState.js",
  10433. "index": 29,
  10434. "index2": 27,
  10435. "size": 6119,
  10436. "cacheable": true,
  10437. "built": true,
  10438. "optional": false,
  10439. "prefetched": false,
  10440. "chunks": [
  10441. "thinEngineOnly"
  10442. ],
  10443. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  10444. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  10445. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  10446. "issuerPath": [
  10447. {
  10448. "id": "./thinEngineOnly.ts",
  10449. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  10450. "name": "./thinEngineOnly.ts",
  10451. "profile": {
  10452. "factory": 42,
  10453. "building": 2115
  10454. }
  10455. },
  10456. {
  10457. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  10458. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  10459. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  10460. "profile": {
  10461. "factory": 6,
  10462. "building": 110
  10463. }
  10464. }
  10465. ],
  10466. "profile": {
  10467. "factory": 59,
  10468. "building": 41,
  10469. "dependencies": 4
  10470. },
  10471. "failed": false,
  10472. "errors": 0,
  10473. "warnings": 0,
  10474. "assets": [],
  10475. "reasons": [
  10476. {
  10477. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  10478. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  10479. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  10480. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  10481. "type": "harmony side effect evaluation",
  10482. "userRequest": "../States/depthCullingState",
  10483. "loc": "8:0-64"
  10484. },
  10485. {
  10486. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  10487. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  10488. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  10489. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  10490. "type": "harmony import specifier",
  10491. "userRequest": "../States/depthCullingState",
  10492. "loc": "104:38-55"
  10493. }
  10494. ],
  10495. "providedExports": [
  10496. "DepthCullingState"
  10497. ],
  10498. "optimizationBailout": [],
  10499. "depth": 2,
  10500. "source": "/**\r\n * @hidden\r\n **/\r\nvar DepthCullingState = /** @class */ (function () {\r\n /**\r\n * Initializes the state.\r\n */\r\n function DepthCullingState() {\r\n this._isDepthTestDirty = false;\r\n this._isDepthMaskDirty = false;\r\n this._isDepthFuncDirty = false;\r\n this._isCullFaceDirty = false;\r\n this._isCullDirty = false;\r\n this._isZOffsetDirty = false;\r\n this._isFrontFaceDirty = false;\r\n this.reset();\r\n }\r\n Object.defineProperty(DepthCullingState.prototype, \"isDirty\", {\r\n get: function () {\r\n return this._isDepthFuncDirty || this._isDepthTestDirty || this._isDepthMaskDirty || this._isCullFaceDirty || this._isCullDirty || this._isZOffsetDirty || this._isFrontFaceDirty;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DepthCullingState.prototype, \"zOffset\", {\r\n get: function () {\r\n return this._zOffset;\r\n },\r\n set: function (value) {\r\n if (this._zOffset === value) {\r\n return;\r\n }\r\n this._zOffset = value;\r\n this._isZOffsetDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DepthCullingState.prototype, \"cullFace\", {\r\n get: function () {\r\n return this._cullFace;\r\n },\r\n set: function (value) {\r\n if (this._cullFace === value) {\r\n return;\r\n }\r\n this._cullFace = value;\r\n this._isCullFaceDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DepthCullingState.prototype, \"cull\", {\r\n get: function () {\r\n return this._cull;\r\n },\r\n set: function (value) {\r\n if (this._cull === value) {\r\n return;\r\n }\r\n this._cull = value;\r\n this._isCullDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DepthCullingState.prototype, \"depthFunc\", {\r\n get: function () {\r\n return this._depthFunc;\r\n },\r\n set: function (value) {\r\n if (this._depthFunc === value) {\r\n return;\r\n }\r\n this._depthFunc = value;\r\n this._isDepthFuncDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DepthCullingState.prototype, \"depthMask\", {\r\n get: function () {\r\n return this._depthMask;\r\n },\r\n set: function (value) {\r\n if (this._depthMask === value) {\r\n return;\r\n }\r\n this._depthMask = value;\r\n this._isDepthMaskDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DepthCullingState.prototype, \"depthTest\", {\r\n get: function () {\r\n return this._depthTest;\r\n },\r\n set: function (value) {\r\n if (this._depthTest === value) {\r\n return;\r\n }\r\n this._depthTest = value;\r\n this._isDepthTestDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DepthCullingState.prototype, \"frontFace\", {\r\n get: function () {\r\n return this._frontFace;\r\n },\r\n set: function (value) {\r\n if (this._frontFace === value) {\r\n return;\r\n }\r\n this._frontFace = value;\r\n this._isFrontFaceDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n DepthCullingState.prototype.reset = function () {\r\n this._depthMask = true;\r\n this._depthTest = true;\r\n this._depthFunc = null;\r\n this._cullFace = null;\r\n this._cull = null;\r\n this._zOffset = 0;\r\n this._frontFace = null;\r\n this._isDepthTestDirty = true;\r\n this._isDepthMaskDirty = true;\r\n this._isDepthFuncDirty = false;\r\n this._isCullFaceDirty = false;\r\n this._isCullDirty = false;\r\n this._isZOffsetDirty = false;\r\n this._isFrontFaceDirty = false;\r\n };\r\n DepthCullingState.prototype.apply = function (gl) {\r\n if (!this.isDirty) {\r\n return;\r\n }\r\n // Cull\r\n if (this._isCullDirty) {\r\n if (this.cull) {\r\n gl.enable(gl.CULL_FACE);\r\n }\r\n else {\r\n gl.disable(gl.CULL_FACE);\r\n }\r\n this._isCullDirty = false;\r\n }\r\n // Cull face\r\n if (this._isCullFaceDirty) {\r\n gl.cullFace(this.cullFace);\r\n this._isCullFaceDirty = false;\r\n }\r\n // Depth mask\r\n if (this._isDepthMaskDirty) {\r\n gl.depthMask(this.depthMask);\r\n this._isDepthMaskDirty = false;\r\n }\r\n // Depth test\r\n if (this._isDepthTestDirty) {\r\n if (this.depthTest) {\r\n gl.enable(gl.DEPTH_TEST);\r\n }\r\n else {\r\n gl.disable(gl.DEPTH_TEST);\r\n }\r\n this._isDepthTestDirty = false;\r\n }\r\n // Depth func\r\n if (this._isDepthFuncDirty) {\r\n gl.depthFunc(this.depthFunc);\r\n this._isDepthFuncDirty = false;\r\n }\r\n // zOffset\r\n if (this._isZOffsetDirty) {\r\n if (this.zOffset) {\r\n gl.enable(gl.POLYGON_OFFSET_FILL);\r\n gl.polygonOffset(this.zOffset, 0);\r\n }\r\n else {\r\n gl.disable(gl.POLYGON_OFFSET_FILL);\r\n }\r\n this._isZOffsetDirty = false;\r\n }\r\n // Front face\r\n if (this._isFrontFaceDirty) {\r\n gl.frontFace(this.frontFace);\r\n this._isFrontFaceDirty = false;\r\n }\r\n };\r\n return DepthCullingState;\r\n}());\r\nexport { DepthCullingState };\r\n//# sourceMappingURL=depthCullingState.js.map"
  10501. },
  10502. {
  10503. "id": "../../.temp/packageES6Dev/core/States/stencilState.js",
  10504. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\States\\stencilState.js",
  10505. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/States/stencilState.js",
  10506. "index": 30,
  10507. "index2": 28,
  10508. "size": 6427,
  10509. "cacheable": true,
  10510. "built": true,
  10511. "optional": false,
  10512. "prefetched": false,
  10513. "chunks": [
  10514. "thinEngineOnly"
  10515. ],
  10516. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  10517. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  10518. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  10519. "issuerPath": [
  10520. {
  10521. "id": "./thinEngineOnly.ts",
  10522. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  10523. "name": "./thinEngineOnly.ts",
  10524. "profile": {
  10525. "factory": 42,
  10526. "building": 2115
  10527. }
  10528. },
  10529. {
  10530. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  10531. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  10532. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  10533. "profile": {
  10534. "factory": 6,
  10535. "building": 110
  10536. }
  10537. }
  10538. ],
  10539. "profile": {
  10540. "factory": 59,
  10541. "building": 41,
  10542. "dependencies": 4
  10543. },
  10544. "failed": false,
  10545. "errors": 0,
  10546. "warnings": 0,
  10547. "assets": [],
  10548. "reasons": [
  10549. {
  10550. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  10551. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  10552. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  10553. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  10554. "type": "harmony side effect evaluation",
  10555. "userRequest": "../States/stencilState",
  10556. "loc": "9:0-54"
  10557. },
  10558. {
  10559. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  10560. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  10561. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  10562. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  10563. "type": "harmony import specifier",
  10564. "userRequest": "../States/stencilState",
  10565. "loc": "106:33-45"
  10566. }
  10567. ],
  10568. "providedExports": [
  10569. "StencilState"
  10570. ],
  10571. "optimizationBailout": [],
  10572. "depth": 2,
  10573. "source": "import { Constants } from \"../Engines/constants\";\r\n/**\r\n * @hidden\r\n **/\r\nvar StencilState = /** @class */ (function () {\r\n function StencilState() {\r\n this._isStencilTestDirty = false;\r\n this._isStencilMaskDirty = false;\r\n this._isStencilFuncDirty = false;\r\n this._isStencilOpDirty = false;\r\n this.reset();\r\n }\r\n Object.defineProperty(StencilState.prototype, \"isDirty\", {\r\n get: function () {\r\n return this._isStencilTestDirty || this._isStencilMaskDirty || this._isStencilFuncDirty || this._isStencilOpDirty;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(StencilState.prototype, \"stencilFunc\", {\r\n get: function () {\r\n return this._stencilFunc;\r\n },\r\n set: function (value) {\r\n if (this._stencilFunc === value) {\r\n return;\r\n }\r\n this._stencilFunc = value;\r\n this._isStencilFuncDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(StencilState.prototype, \"stencilFuncRef\", {\r\n get: function () {\r\n return this._stencilFuncRef;\r\n },\r\n set: function (value) {\r\n if (this._stencilFuncRef === value) {\r\n return;\r\n }\r\n this._stencilFuncRef = value;\r\n this._isStencilFuncDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(StencilState.prototype, \"stencilFuncMask\", {\r\n get: function () {\r\n return this._stencilFuncMask;\r\n },\r\n set: function (value) {\r\n if (this._stencilFuncMask === value) {\r\n return;\r\n }\r\n this._stencilFuncMask = value;\r\n this._isStencilFuncDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(StencilState.prototype, \"stencilOpStencilFail\", {\r\n get: function () {\r\n return this._stencilOpStencilFail;\r\n },\r\n set: function (value) {\r\n if (this._stencilOpStencilFail === value) {\r\n return;\r\n }\r\n this._stencilOpStencilFail = value;\r\n this._isStencilOpDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(StencilState.prototype, \"stencilOpDepthFail\", {\r\n get: function () {\r\n return this._stencilOpDepthFail;\r\n },\r\n set: function (value) {\r\n if (this._stencilOpDepthFail === value) {\r\n return;\r\n }\r\n this._stencilOpDepthFail = value;\r\n this._isStencilOpDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(StencilState.prototype, \"stencilOpStencilDepthPass\", {\r\n get: function () {\r\n return this._stencilOpStencilDepthPass;\r\n },\r\n set: function (value) {\r\n if (this._stencilOpStencilDepthPass === value) {\r\n return;\r\n }\r\n this._stencilOpStencilDepthPass = value;\r\n this._isStencilOpDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(StencilState.prototype, \"stencilMask\", {\r\n get: function () {\r\n return this._stencilMask;\r\n },\r\n set: function (value) {\r\n if (this._stencilMask === value) {\r\n return;\r\n }\r\n this._stencilMask = value;\r\n this._isStencilMaskDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(StencilState.prototype, \"stencilTest\", {\r\n get: function () {\r\n return this._stencilTest;\r\n },\r\n set: function (value) {\r\n if (this._stencilTest === value) {\r\n return;\r\n }\r\n this._stencilTest = value;\r\n this._isStencilTestDirty = true;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n StencilState.prototype.reset = function () {\r\n this._stencilTest = false;\r\n this._stencilMask = 0xFF;\r\n this._stencilFunc = StencilState.ALWAYS;\r\n this._stencilFuncRef = 1;\r\n this._stencilFuncMask = 0xFF;\r\n this._stencilOpStencilFail = StencilState.KEEP;\r\n this._stencilOpDepthFail = StencilState.KEEP;\r\n this._stencilOpStencilDepthPass = StencilState.REPLACE;\r\n this._isStencilTestDirty = true;\r\n this._isStencilMaskDirty = true;\r\n this._isStencilFuncDirty = true;\r\n this._isStencilOpDirty = true;\r\n };\r\n StencilState.prototype.apply = function (gl) {\r\n if (!this.isDirty) {\r\n return;\r\n }\r\n // Stencil test\r\n if (this._isStencilTestDirty) {\r\n if (this.stencilTest) {\r\n gl.enable(gl.STENCIL_TEST);\r\n }\r\n else {\r\n gl.disable(gl.STENCIL_TEST);\r\n }\r\n this._isStencilTestDirty = false;\r\n }\r\n // Stencil mask\r\n if (this._isStencilMaskDirty) {\r\n gl.stencilMask(this.stencilMask);\r\n this._isStencilMaskDirty = false;\r\n }\r\n // Stencil func\r\n if (this._isStencilFuncDirty) {\r\n gl.stencilFunc(this.stencilFunc, this.stencilFuncRef, this.stencilFuncMask);\r\n this._isStencilFuncDirty = false;\r\n }\r\n // Stencil op\r\n if (this._isStencilOpDirty) {\r\n gl.stencilOp(this.stencilOpStencilFail, this.stencilOpDepthFail, this.stencilOpStencilDepthPass);\r\n this._isStencilOpDirty = false;\r\n }\r\n };\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will always pass. i.e. Pixels will be drawn in the order they are drawn */\r\n StencilState.ALWAYS = Constants.ALWAYS;\r\n /** Passed to stencilOperation to specify that stencil value must be kept */\r\n StencilState.KEEP = Constants.KEEP;\r\n /** Passed to stencilOperation to specify that stencil value must be replaced */\r\n StencilState.REPLACE = Constants.REPLACE;\r\n return StencilState;\r\n}());\r\nexport { StencilState };\r\n//# sourceMappingURL=stencilState.js.map"
  10574. },
  10575. {
  10576. "id": "../../.temp/packageES6Dev/core/node_modules/tslib/tslib.es6.js",
  10577. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\node_modules\\tslib\\tslib.es6.js",
  10578. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/node_modules/tslib/tslib.es6.js",
  10579. "index": 2,
  10580. "index2": 0,
  10581. "size": 9436,
  10582. "cacheable": true,
  10583. "built": true,
  10584. "optional": false,
  10585. "prefetched": false,
  10586. "chunks": [
  10587. "thinEngineOnly"
  10588. ],
  10589. "issuer": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  10590. "issuerId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  10591. "issuerName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  10592. "issuerPath": [
  10593. {
  10594. "id": "./thinEngineOnly.ts",
  10595. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  10596. "name": "./thinEngineOnly.ts",
  10597. "profile": {
  10598. "factory": 42,
  10599. "building": 2115
  10600. }
  10601. },
  10602. {
  10603. "id": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  10604. "identifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  10605. "name": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  10606. "profile": {
  10607. "factory": 6,
  10608. "building": 110
  10609. }
  10610. }
  10611. ],
  10612. "profile": {
  10613. "factory": 59,
  10614. "building": 41,
  10615. "dependencies": 4
  10616. },
  10617. "failed": false,
  10618. "errors": 0,
  10619. "warnings": 0,
  10620. "assets": [],
  10621. "reasons": [
  10622. {
  10623. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js",
  10624. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineAndOperator.js",
  10625. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js",
  10626. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js",
  10627. "type": "harmony side effect evaluation",
  10628. "userRequest": "tslib",
  10629. "loc": "1:0-33"
  10630. },
  10631. {
  10632. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js",
  10633. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineAndOperator.js",
  10634. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js",
  10635. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js",
  10636. "type": "harmony import specifier",
  10637. "userRequest": "tslib",
  10638. "loc": "5:4-21"
  10639. },
  10640. {
  10641. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js",
  10642. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineArithmeticOperator.js",
  10643. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js",
  10644. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js",
  10645. "type": "harmony side effect evaluation",
  10646. "userRequest": "tslib",
  10647. "loc": "1:0-33"
  10648. },
  10649. {
  10650. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js",
  10651. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineArithmeticOperator.js",
  10652. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js",
  10653. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js",
  10654. "type": "harmony import specifier",
  10655. "userRequest": "tslib",
  10656. "loc": "5:4-21"
  10657. },
  10658. {
  10659. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  10660. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineIsDefinedOperator.js",
  10661. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  10662. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  10663. "type": "harmony side effect evaluation",
  10664. "userRequest": "tslib",
  10665. "loc": "1:0-33"
  10666. },
  10667. {
  10668. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  10669. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineIsDefinedOperator.js",
  10670. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  10671. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js",
  10672. "type": "harmony import specifier",
  10673. "userRequest": "tslib",
  10674. "loc": "5:4-21"
  10675. },
  10676. {
  10677. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js",
  10678. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineOrOperator.js",
  10679. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js",
  10680. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js",
  10681. "type": "harmony side effect evaluation",
  10682. "userRequest": "tslib",
  10683. "loc": "1:0-33"
  10684. },
  10685. {
  10686. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js",
  10687. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\Expressions\\Operators\\shaderDefineOrOperator.js",
  10688. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js",
  10689. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js",
  10690. "type": "harmony import specifier",
  10691. "userRequest": "tslib",
  10692. "loc": "5:4-21"
  10693. },
  10694. {
  10695. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeConditionNode.js",
  10696. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeConditionNode.js",
  10697. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeConditionNode.js",
  10698. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeConditionNode.js",
  10699. "type": "harmony side effect evaluation",
  10700. "userRequest": "tslib",
  10701. "loc": "1:0-33"
  10702. },
  10703. {
  10704. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeConditionNode.js",
  10705. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeConditionNode.js",
  10706. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeConditionNode.js",
  10707. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeConditionNode.js",
  10708. "type": "harmony import specifier",
  10709. "userRequest": "tslib",
  10710. "loc": "5:4-21"
  10711. },
  10712. {
  10713. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeTestNode.js",
  10714. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeTestNode.js",
  10715. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeTestNode.js",
  10716. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeTestNode.js",
  10717. "type": "harmony side effect evaluation",
  10718. "userRequest": "tslib",
  10719. "loc": "1:0-33"
  10720. },
  10721. {
  10722. "moduleId": "../../.temp/packageES6Dev/core/Engines/Processors/shaderCodeTestNode.js",
  10723. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\Processors\\shaderCodeTestNode.js",
  10724. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeTestNode.js",
  10725. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/Processors/shaderCodeTestNode.js",
  10726. "type": "harmony import specifier",
  10727. "userRequest": "tslib",
  10728. "loc": "5:4-21"
  10729. },
  10730. {
  10731. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  10732. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  10733. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  10734. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  10735. "type": "harmony side effect evaluation",
  10736. "userRequest": "tslib",
  10737. "loc": "1:0-33"
  10738. },
  10739. {
  10740. "moduleId": "../../.temp/packageES6Dev/core/Engines/thinEngine.js",
  10741. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Engines\\thinEngine.js",
  10742. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  10743. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Engines/thinEngine.js",
  10744. "type": "harmony import specifier",
  10745. "userRequest": "tslib",
  10746. "loc": "2747:30-46"
  10747. },
  10748. {
  10749. "moduleId": "../../.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  10750. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Meshes\\WebGL\\webGLDataBuffer.js",
  10751. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  10752. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  10753. "type": "harmony side effect evaluation",
  10754. "userRequest": "tslib",
  10755. "loc": "1:0-33"
  10756. },
  10757. {
  10758. "moduleId": "../../.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  10759. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Meshes\\WebGL\\webGLDataBuffer.js",
  10760. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  10761. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Meshes/WebGL/webGLDataBuffer.js",
  10762. "type": "harmony import specifier",
  10763. "userRequest": "tslib",
  10764. "loc": "5:4-21"
  10765. },
  10766. {
  10767. "moduleId": "../../.temp/packageES6Dev/core/Misc/loadFileError.js",
  10768. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\loadFileError.js",
  10769. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/loadFileError.js",
  10770. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/loadFileError.js",
  10771. "type": "harmony side effect evaluation",
  10772. "userRequest": "tslib",
  10773. "loc": "1:0-33"
  10774. },
  10775. {
  10776. "moduleId": "../../.temp/packageES6Dev/core/Misc/loadFileError.js",
  10777. "moduleIdentifier": "C:\\Repos\\Babylon.js\\.temp\\packageES6Dev\\core\\Misc\\loadFileError.js",
  10778. "module": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/loadFileError.js",
  10779. "moduleName": "C:/Repos/Babylon.js/.temp/packageES6Dev/core/Misc/loadFileError.js",
  10780. "type": "harmony import specifier",
  10781. "userRequest": "tslib",
  10782. "loc": "7:4-21"
  10783. }
  10784. ],
  10785. "providedExports": [
  10786. "__extends",
  10787. "__assign",
  10788. "__rest",
  10789. "__decorate",
  10790. "__param",
  10791. "__metadata",
  10792. "__awaiter",
  10793. "__generator",
  10794. "__exportStar",
  10795. "__values",
  10796. "__read",
  10797. "__spread",
  10798. "__spreadArrays",
  10799. "__await",
  10800. "__asyncGenerator",
  10801. "__asyncDelegator",
  10802. "__asyncValues",
  10803. "__makeTemplateObject",
  10804. "__importStar",
  10805. "__importDefault"
  10806. ],
  10807. "optimizationBailout": [],
  10808. "depth": 2,
  10809. "source": "/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n"
  10810. },
  10811. {
  10812. "id": "./thinEngineOnly.ts",
  10813. "identifier": "C:\\Repos\\Babylon.js\\node_modules\\ts-loader\\index.js!C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  10814. "name": "./thinEngineOnly.ts",
  10815. "index": 0,
  10816. "index2": 37,
  10817. "size": 146,
  10818. "cacheable": true,
  10819. "built": true,
  10820. "optional": false,
  10821. "prefetched": false,
  10822. "chunks": [
  10823. "thinEngineOnly"
  10824. ],
  10825. "issuer": null,
  10826. "issuerId": null,
  10827. "issuerName": null,
  10828. "issuerPath": null,
  10829. "profile": {
  10830. "factory": 42,
  10831. "building": 2115
  10832. },
  10833. "failed": false,
  10834. "errors": 0,
  10835. "warnings": 0,
  10836. "assets": [],
  10837. "reasons": [
  10838. {
  10839. "moduleId": null,
  10840. "moduleIdentifier": null,
  10841. "module": null,
  10842. "moduleName": null,
  10843. "type": "single entry",
  10844. "userRequest": "C:\\Repos\\Babylon.js\\tests\\es6Modules\\thinEngineOnly.ts",
  10845. "loc": "thinEngineOnly"
  10846. }
  10847. ],
  10848. "providedExports": [],
  10849. "optimizationBailout": [],
  10850. "depth": 0,
  10851. "source": "import { ThinEngine } from \"@babylonjs/core/Engines/thinEngine\";\r\nvar canvas = document.getElementById(\"renderCanvas\");\r\nnew ThinEngine(canvas);\r\n"
  10852. }
  10853. ],
  10854. "filteredModules": 0,
  10855. "children": []
  10856. }