[{"data":1,"prerenderedAt":808},["ShallowReactive",2],{"doc:\u002Fvector-engine\u002Finternals\u002Farchitecture":3,"surround:\u002Fvector-engine\u002Finternals\u002Farchitecture":558,"navigation":569},{"id":4,"title":5,"body":6,"description":550,"extension":551,"meta":552,"navigation":553,"path":554,"seo":555,"stem":556,"__hash__":557},"docs\u002F03.vector-engine\u002F05.internals\u002F01.architecture.md","Architektura",{"type":7,"value":8,"toc":534},"minimark",[9,14,25,36,40,49,101,108,191,198,244,251,319,323,482,493,497,508,512,530],[10,11,13],"h2",{"id":12},"pipeline-przetwarzania","Pipeline przetwarzania",[15,16,22],"pre",{"className":17,"code":19,"language":20,"meta":21},[18],"language-text","JSON source snapshot\n  → walidacja strukturalna (Ajv Draft 2020-12 + parser C++23)\n  → walidacja semantyczna (unikalne ID, warstwy, workspaces, gradienty, limity)\n  → ekstrakcja target scope (scene \u002F selection \u002F group \u002F layer \u002F objects \u002F workspace)\n  → analityczny tight bounding box i rozdzielczość viewportu (contain \u002F cover \u002F stretch + margin + clip)\n  → serializer SVG (z minifikacją) lub rasteryzator scanline RGBA 4× subpixel\n  → PNG, JPEG, BMP (24-bit BGR \u002F 32-bit BGRA) lub archiwum PKZIP\n","text","",[23,24,19],"code",{"__ignoreMap":21},[26,27,28,29,35],"p",{},"UI nie zależy od szczegółów implementacji C++ — komunikuje się przez kontrakt ",[30,31,32],"strong",{},[23,33,34],{},"EngineBackend"," w TypeScripcie i pipeline serwisów eksportu.",[10,37,39],{"id":38},"warstwy","Warstwy",[41,42,44,45,48],"h3",{"id":43},"ui-appswebsrccomponents","UI (",[23,46,47],{},"apps\u002Fweb\u002Fsrc\u002Fcomponents",")",[50,51,52,59,65,85,91],"ul",{},[53,54,55,58],"li",{},[23,56,57],{},"AppHeader.vue"," — nazwa dokumentu, import JSON, reset sceny, eksport jednym kliknięciem i trójstanowe przełączniki paneli.",[53,60,61,64],{},[23,62,63],{},"JsonEditor.vue"," — CodeMirror 6 z inline diagnostyką walidacji.",[53,66,67,70,71,74,75,74,78,74,81,84],{},[23,68,69],{},"PreviewPanel.vue"," — live podgląd z zoomem i niezależnym tłem canvasa (",[23,72,73],{},"Grid",", ",[23,76,77],{},"Light",[23,79,80],{},"White",[23,82,83],{},"Dark",").",[53,86,87,90],{},[23,88,89],{},"ExportPanel.vue"," — 7-krokowy workflow eksportu z batch\u002FZIP i anulowaniem.",[53,92,93,96,97,100],{},[23,94,95],{},"InspectorSection.vue"," — akordeon inspektora, stan w ",[23,98,99],{},"localStorage",".",[41,102,104,105,48],{"id":103},"orkiestracja-eksportu-appswebsrcexport","Orkiestracja eksportu (",[23,106,107],{},"apps\u002Fweb\u002Fsrc\u002Fexport",[109,110,111,124],"table",{},[112,113,114],"thead",{},[115,116,117,121],"tr",{},[118,119,120],"th",{},"Moduł",[118,122,123],{},"Odpowiedzialność",[125,126,127,138,148,158,168,178],"tbody",{},[115,128,129,135],{},[130,131,132],"td",{},[23,133,134],{},"bounds.ts",[130,136,137],{},"Składanie macierzy afinicznych, bounds path z flatteningiem Bézierów, przycinanie drzewa scope",[115,139,140,145],{},[130,141,142],{},[23,143,144],{},"validation.ts",[130,146,147],{},"Preflight: wymiary, piksele, pamięć, kolory, jakość, targety",[115,149,150,155],{},[130,151,152],{},[23,153,154],{},"filename.ts",[130,156,157],{},"Szablony nazw i deduplikacja kolizji",[115,159,160,165],{},[130,161,162],{},[23,163,164],{},"sizeEstimator.ts",[130,166,167],{},"Estymacja bajtów i RAM, diagnoza alpha, miniatura ≤ 320 px",[115,169,170,175],{},[130,171,172],{},[23,173,174],{},"zipWriter.ts",[130,176,177],{},"PKZIP z CRC-32, STORE\u002FDEFLATE, zero zależności",[115,179,180,188],{},[130,181,182,74,185],{},[23,183,184],{},"exportService.ts",[23,186,187],{},"batchExporter.ts",[130,189,190],{},"Snapshoty, AbortSignal, per-item overrides, BatchExportReport",[41,192,194,195,48],{"id":193},"worker-i-adapter-wasm-appswebsrcengine","Worker i adapter WASM (",[23,196,197],{},"apps\u002Fweb\u002Fsrc\u002Fengine",[50,199,200,217,238],{},[53,201,202,205,206,209,210,213,214,100],{},[23,203,204],{},"workerBackend.ts"," + ",[23,207,208],{},"exportWorker.ts"," — rdzeń poza głównym wątkiem, zero-copy transfery ",[23,211,212],{},"ArrayBuffer",", natychmiastowe ubijanie workera przy ",[23,215,216],{},"abort()",[53,218,219,222,223,74,226,74,229,74,232,74,235,84],{},[23,220,221],{},"wasmBackend.ts"," — most do reakatora C++23 (",[23,224,225],{},"validateJson",[23,227,228],{},"renderScopedSvg",[23,230,231],{},"exportScopedMeta",[23,233,234],{},"takeLastBytes",[23,236,237],{},"measureBounds",[53,239,240,243],{},[23,241,242],{},"browserBackend.ts"," — fallback zgodny API.",[41,245,247,248,48],{"id":246},"rdzeń-c23-engine","Rdzeń C++23 (",[23,249,250],{},"engine\u002F",[109,252,253,262],{},[112,254,255],{},[115,256,257,260],{},[118,258,259],{},"Plik",[118,261,123],{},[125,263,264,277,299,309],{},[115,265,266,274],{},[130,267,268,74,271],{},[23,269,270],{},"parser.cpp",[23,272,273],{},"bounds.cpp",[130,275,276],{},"Parsowanie scen, warstw, workspace'ów, gradientów; dokładne bounds z transformacjami i stroke",[115,278,279,284],{},[130,280,281],{},[23,282,283],{},"svg_renderer.cpp",[130,285,286,287,74,290,74,293,74,296],{},"SVG z ",[23,288,289],{},"\u003Cdefs>",[23,291,292],{},"\u003CclipPath>",[23,294,295],{},"mix-blend-mode",[23,297,298],{},"preserveAspectRatio",[115,300,301,306],{},[130,302,303],{},[23,304,305],{},"rasterizer.cpp",[130,307,308],{},"Rasteryzacja geometrii, gradientów (pad\u002Freflect\u002Frepeat), stroke i clip do straight-alpha RGBA",[115,310,311,316],{},[130,312,313],{},[23,314,315],{},"encoders.cpp",[130,317,318],{},"PNG, JPEG (DCT), BMP 24 BGR, BMP 32 BGRA",[10,320,322],{"id":321},"kontrakt-enginebackend","Kontrakt EngineBackend",[15,324,328],{"className":325,"code":326,"language":327,"meta":21,"style":21},"language-ts shiki shiki-themes github-light github-dark","interface EngineBackend {\n  validateJson(source: string): ValidationResult\n  measureBounds(source: string, optionsJson: string): BoundsResult\n  renderScopedSvg(source: string, optionsJson: string): SvgResult\n  exportScopedMeta(source: string, optionsJson: string): ExportMeta\n  takeLastBytes(): Uint8Array\n}\n","ts",[23,329,330,347,374,404,433,462,476],{"__ignoreMap":21},[331,332,335,339,343],"span",{"class":333,"line":334},"line",1,[331,336,338],{"class":337},"szBVR","interface",[331,340,342],{"class":341},"sScJk"," EngineBackend",[331,344,346],{"class":345},"sVt8B"," {\n",[331,348,350,353,356,360,363,367,369,371],{"class":333,"line":349},2,[331,351,352],{"class":341},"  validateJson",[331,354,355],{"class":345},"(",[331,357,359],{"class":358},"s4XuR","source",[331,361,362],{"class":337},":",[331,364,366],{"class":365},"sj4cs"," string",[331,368,48],{"class":345},[331,370,362],{"class":337},[331,372,373],{"class":341}," ValidationResult\n",[331,375,377,380,382,384,386,388,390,393,395,397,399,401],{"class":333,"line":376},3,[331,378,379],{"class":341},"  measureBounds",[331,381,355],{"class":345},[331,383,359],{"class":358},[331,385,362],{"class":337},[331,387,366],{"class":365},[331,389,74],{"class":345},[331,391,392],{"class":358},"optionsJson",[331,394,362],{"class":337},[331,396,366],{"class":365},[331,398,48],{"class":345},[331,400,362],{"class":337},[331,402,403],{"class":341}," BoundsResult\n",[331,405,407,410,412,414,416,418,420,422,424,426,428,430],{"class":333,"line":406},4,[331,408,409],{"class":341},"  renderScopedSvg",[331,411,355],{"class":345},[331,413,359],{"class":358},[331,415,362],{"class":337},[331,417,366],{"class":365},[331,419,74],{"class":345},[331,421,392],{"class":358},[331,423,362],{"class":337},[331,425,366],{"class":365},[331,427,48],{"class":345},[331,429,362],{"class":337},[331,431,432],{"class":341}," SvgResult\n",[331,434,436,439,441,443,445,447,449,451,453,455,457,459],{"class":333,"line":435},5,[331,437,438],{"class":341},"  exportScopedMeta",[331,440,355],{"class":345},[331,442,359],{"class":358},[331,444,362],{"class":337},[331,446,366],{"class":365},[331,448,74],{"class":345},[331,450,392],{"class":358},[331,452,362],{"class":337},[331,454,366],{"class":365},[331,456,48],{"class":345},[331,458,362],{"class":337},[331,460,461],{"class":341}," ExportMeta\n",[331,463,465,468,471,473],{"class":333,"line":464},6,[331,466,467],{"class":341},"  takeLastBytes",[331,469,470],{"class":345},"()",[331,472,362],{"class":337},[331,474,475],{"class":341}," Uint8Array\n",[331,477,479],{"class":333,"line":478},7,[331,480,481],{"class":345},"}\n",[26,483,484,485,488,489,492],{},"Dwie implementacje: ",[23,486,487],{},"WasmBackend"," (produkcja) i ",[23,490,491],{},"BrowserBackend"," (fallback dev). Ten sam kontrakt, więc UI nie wie i nie musi wiedzieć, który rdzeń działa.",[10,494,496],{"id":495},"determinizm","Determinizm",[50,498,499,502,505],{},[53,500,501],{},"Ten sam JSON + te same opcje → ten sam SVG i te same piksele.",[53,503,504],{},"Rasteryzator scanline z 4× subpixel samplingiem jest deterministyczny między platformami.",[53,506,507],{},"SVG escapuje tekst i atrybuty — brak wstrzykiwania XML.",[10,509,511],{"id":510},"bezpieczeństwo","Bezpieczeństwo",[50,513,514,517,520,523],{},[53,515,516],{},"Limity: 4 MB źródła, 16 384 px wymiaru, 67 Mpx rastra, 10 000 obiektów, 32 poziomy grup, 1 M znaków path.",[53,518,519],{},"Guard 512 MB RAM roboczego przy rasteryzacji.",[53,521,522],{},"Brak zewnętrznych zasobów: żadnych sieciowych URL-i, fontów ani obrazów.",[53,524,525,526,529],{},"CSP kompatybilna z Emscripten — bez ",[23,527,528],{},"unsafe-eval"," (Ajv kompiluje schemę do standalone module w buildzie).",[531,532,533],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":21,"searchDepth":376,"depth":376,"links":535},[536,537,547,548,549],{"id":12,"depth":349,"text":13},{"id":38,"depth":349,"text":39,"children":538},[539,541,543,545],{"id":43,"depth":376,"text":540},"UI (apps\u002Fweb\u002Fsrc\u002Fcomponents)",{"id":103,"depth":376,"text":542},"Orkiestracja eksportu (apps\u002Fweb\u002Fsrc\u002Fexport)",{"id":193,"depth":376,"text":544},"Worker i adapter WASM (apps\u002Fweb\u002Fsrc\u002Fengine)",{"id":246,"depth":376,"text":546},"Rdzeń C++23 (engine\u002F)",{"id":321,"depth":349,"text":322},{"id":495,"depth":349,"text":496},{"id":510,"depth":349,"text":511},"Pipeline przetwarzania, warstwy UI\u002Forchestracji\u002Fworkera\u002Frdzenia C++23 i kontrakt EngineBackend. Jak JSON staje się pikselami.","md",{},true,"\u002Fvector-engine\u002Finternals\u002Farchitecture",{"title":5,"description":550},"03.vector-engine\u002F05.internals\u002F01.architecture","gfeJYuYErbJOOkZf5BI1EYXrBbbPiKvsCpqHl45Fy_4",[559,564],{"title":560,"path":561,"stem":562,"description":563,"children":-1},"Proces eksportu","\u002Fvector-engine\u002Fexport\u002Fexport-workflow","03.vector-engine\u002F04.export\u002F02.export-workflow","Siedem kroków panelu eksportu, targety (scena\u002Fselekcja\u002Fgrupa\u002Fwarstwa\u002Fworkspace), batch i ZIP, szablony nazw i anulowanie.",{"title":565,"path":566,"stem":567,"description":568,"children":-1},"WebAssembly i workery","\u002Fvector-engine\u002Finternals\u002Fwasm","03.vector-engine\u002F05.internals\u002F02.wasm","Build C++23 do WASM, publiczne API instancji, Dedicated Worker z zero-copy transferami i anulowaniem przez AbortSignal.",[570,689,749],{"title":571,"path":572,"stem":573,"children":574},"2D Game Engine","\u002Fgame-engine","01.game-engine\u002F01.index",[575,577,581,585,588,614,643,656,677,681,685],{"title":576,"path":572,"stem":573},"Przegląd",{"title":578,"path":579,"stem":580},"Szybki start","\u002Fgame-engine\u002Fgetting-started","01.game-engine\u002F02.getting-started",{"title":582,"path":583,"stem":584},"Konfiguracja","\u002Fgame-engine\u002Fconfiguration","01.game-engine\u002F03.configuration",{"title":5,"path":586,"stem":587},"\u002Fgame-engine\u002Farchitecture","01.game-engine\u002F04.architecture",{"title":589,"path":590,"stem":591,"children":592,"page":613},"Rdzeń","\u002Fgame-engine\u002Fcore","01.game-engine\u002F05.core",[593,597,601,605,609],{"title":594,"path":595,"stem":596},"Silnik i cykl życia","\u002Fgame-engine\u002Fcore\u002Fengine","01.game-engine\u002F05.core\u002F01.engine",{"title":598,"path":599,"stem":600},"Czas i pętla gry","\u002Fgame-engine\u002Fcore\u002Ftime","01.game-engine\u002F05.core\u002F02.time",{"title":602,"path":603,"stem":604},"Sceny","\u002Fgame-engine\u002Fcore\u002Fscenes","01.game-engine\u002F05.core\u002F03.scenes",{"title":606,"path":607,"stem":608},"Obiekty i komponenty","\u002Fgame-engine\u002Fcore\u002Fobjects","01.game-engine\u002F05.core\u002F04.objects",{"title":610,"path":611,"stem":612},"Zdarzenia i harmonogram","\u002Fgame-engine\u002Fcore\u002Fevents","01.game-engine\u002F05.core\u002F05.events",false,{"title":615,"path":616,"stem":617,"children":618,"page":613},"Systemy","\u002Fgame-engine\u002Fsystems","01.game-engine\u002F06.systems",[619,623,627,631,635,639],{"title":620,"path":621,"stem":622},"Zasoby (AssetManager)","\u002Fgame-engine\u002Fsystems\u002Fassets","01.game-engine\u002F06.systems\u002F01.assets",{"title":624,"path":625,"stem":626},"Wejście (InputManager)","\u002Fgame-engine\u002Fsystems\u002Finput","01.game-engine\u002F06.systems\u002F02.input",{"title":628,"path":629,"stem":630},"Fizyka (PhysicsManager)","\u002Fgame-engine\u002Fsystems\u002Fphysics","01.game-engine\u002F06.systems\u002F03.physics",{"title":632,"path":633,"stem":634},"Kamera (CameraManager)","\u002Fgame-engine\u002Fsystems\u002Fcamera","01.game-engine\u002F06.systems\u002F04.camera",{"title":636,"path":637,"stem":638},"Audio (AudioManager)","\u002Fgame-engine\u002Fsystems\u002Faudio","01.game-engine\u002F06.systems\u002F05.audio",{"title":640,"path":641,"stem":642},"Tweeny i easing","\u002Fgame-engine\u002Fsystems\u002Ftweens","01.game-engine\u002F06.systems\u002F06.tweens",{"title":644,"path":645,"stem":646,"children":647,"page":613},"Dane i zapisy","\u002Fgame-engine\u002Fdata","01.game-engine\u002F07.data",[648,652],{"title":649,"path":650,"stem":651},"Format projektu","\u002Fgame-engine\u002Fdata\u002Fproject-format","01.game-engine\u002F07.data\u002F01.project-format",{"title":653,"path":654,"stem":655},"Zapisy gry","\u002Fgame-engine\u002Fdata\u002Fsaves","01.game-engine\u002F07.data\u002F02.saves",{"title":657,"path":658,"stem":659,"children":660,"page":613},"Zaawansowane","\u002Fgame-engine\u002Fadvanced","01.game-engine\u002F08.advanced",[661,665,669,673],{"title":662,"path":663,"stem":664},"Pluginy","\u002Fgame-engine\u002Fadvanced\u002Fplugins","01.game-engine\u002F08.advanced\u002F01.plugins",{"title":666,"path":667,"stem":668},"WebAssembly","\u002Fgame-engine\u002Fadvanced\u002Fwasm","01.game-engine\u002F08.advanced\u002F02.wasm",{"title":670,"path":671,"stem":672},"Debugowanie","\u002Fgame-engine\u002Fadvanced\u002Fdebugging","01.game-engine\u002F08.advanced\u002F03.debugging",{"title":674,"path":675,"stem":676},"Wydajność i benchmarki","\u002Fgame-engine\u002Fadvanced\u002Fperformance","01.game-engine\u002F08.advanced\u002F04.performance",{"title":678,"path":679,"stem":680},"Wdrożenie","\u002Fgame-engine\u002Fdeployment","01.game-engine\u002F09.deployment",{"title":682,"path":683,"stem":684},"Przykłady","\u002Fgame-engine\u002Fexamples","01.game-engine\u002F10.examples",{"title":686,"path":687,"stem":688},"Decyzje architektoniczne","\u002Fgame-engine\u002Fadr","01.game-engine\u002F11.adr",{"title":690,"path":691,"stem":692,"children":693},"Reverse Proxy","\u002Freverse-proxy","02.reverse-proxy\u002F01.index",[694,695,698,701,722],{"title":576,"path":691,"stem":692},{"title":578,"path":696,"stem":697},"\u002Freverse-proxy\u002Fgetting-started","02.reverse-proxy\u002F02.getting-started",{"title":582,"path":699,"stem":700},"\u002Freverse-proxy\u002Fconfiguration","02.reverse-proxy\u002F03.configuration",{"title":702,"path":703,"stem":704,"children":705,"page":613},"Ruch i odporność","\u002Freverse-proxy\u002Ftraffic","02.reverse-proxy\u002F04.traffic",[706,710,714,718],{"title":707,"path":708,"stem":709},"Load balancing","\u002Freverse-proxy\u002Ftraffic\u002Fload-balancing","02.reverse-proxy\u002F04.traffic\u002F01.load-balancing",{"title":711,"path":712,"stem":713},"Health checks","\u002Freverse-proxy\u002Ftraffic\u002Fhealth-checks","02.reverse-proxy\u002F04.traffic\u002F02.health-checks",{"title":715,"path":716,"stem":717},"Circuit breaker i retry","\u002Freverse-proxy\u002Ftraffic\u002Fresilience","02.reverse-proxy\u002F04.traffic\u002F03.resilience",{"title":719,"path":720,"stem":721},"Rate limiting","\u002Freverse-proxy\u002Ftraffic\u002Frate-limiting","02.reverse-proxy\u002F04.traffic\u002F04.rate-limiting",{"title":723,"path":724,"stem":725,"children":726,"page":613},"Operacje i wdrożenie","\u002Freverse-proxy\u002Foperations","02.reverse-proxy\u002F05.operations",[727,731,735,738,741,745],{"title":728,"path":729,"stem":730},"Admin API","\u002Freverse-proxy\u002Foperations\u002Fadmin-api","02.reverse-proxy\u002F05.operations\u002F01.admin-api",{"title":732,"path":733,"stem":734},"Metryki i monitoring","\u002Freverse-proxy\u002Foperations\u002Fobservability","02.reverse-proxy\u002F05.operations\u002F02.observability",{"title":511,"path":736,"stem":737},"\u002Freverse-proxy\u002Foperations\u002Fsecurity","02.reverse-proxy\u002F05.operations\u002F03.security",{"title":678,"path":739,"stem":740},"\u002Freverse-proxy\u002Foperations\u002Fdeployment","02.reverse-proxy\u002F05.operations\u002F04.deployment",{"title":742,"path":743,"stem":744},"Benchmarki","\u002Freverse-proxy\u002Foperations\u002Fbenchmarks","02.reverse-proxy\u002F05.operations\u002F05.benchmarks",{"title":746,"path":747,"stem":748},"Troubleshooting","\u002Freverse-proxy\u002Foperations\u002Ftroubleshooting","02.reverse-proxy\u002F05.operations\u002F06.troubleshooting",{"title":750,"path":751,"stem":752,"children":753},"Vector Engine","\u002Fvector-engine","03.vector-engine\u002F01.index",[754,755,758,779,789,804],{"title":576,"path":751,"stem":752},{"title":578,"path":756,"stem":757},"\u002Fvector-engine\u002Fgetting-started","03.vector-engine\u002F02.getting-started",{"title":759,"path":760,"stem":761,"children":762,"page":613},"Scena","\u002Fvector-engine\u002Fscene","03.vector-engine\u002F03.scene",[763,767,771,775],{"title":764,"path":765,"stem":766},"Format sceny 1.0","\u002Fvector-engine\u002Fscene\u002Fscene-format","03.vector-engine\u002F03.scene\u002F01.scene-format",{"title":768,"path":769,"stem":770},"Obiekty sceny","\u002Fvector-engine\u002Fscene\u002Fobjects","03.vector-engine\u002F03.scene\u002F02.objects",{"title":772,"path":773,"stem":774},"Gradienty i warstwy","\u002Fvector-engine\u002Fscene\u002Fgradients-layers","03.vector-engine\u002F03.scene\u002F03.gradients-layers",{"title":776,"path":777,"stem":778},"Przykłady scen","\u002Fvector-engine\u002Fscene\u002Fexamples","03.vector-engine\u002F03.scene\u002F04.examples",{"title":780,"path":781,"stem":782,"children":783,"page":613},"Eksport","\u002Fvector-engine\u002Fexport","03.vector-engine\u002F04.export",[784,788],{"title":785,"path":786,"stem":787},"Formaty eksportu","\u002Fvector-engine\u002Fexport\u002Fexport-formats","03.vector-engine\u002F04.export\u002F01.export-formats",{"title":560,"path":561,"stem":562},{"title":790,"path":791,"stem":792,"children":793,"page":613},"Wnętrze silnika","\u002Fvector-engine\u002Finternals","03.vector-engine\u002F05.internals",[794,795,796,800],{"title":5,"path":554,"stem":556},{"title":565,"path":566,"stem":567},{"title":797,"path":798,"stem":799},"Workspace i panele","\u002Fvector-engine\u002Finternals\u002Fworkspace","03.vector-engine\u002F05.internals\u002F03.workspace",{"title":801,"path":802,"stem":803},"Breakpointy","\u002Fvector-engine\u002Finternals\u002Fbreakpoints","03.vector-engine\u002F05.internals\u002F04.breakpoints",{"title":805,"path":806,"stem":807},"Wdrożenie na Vercel","\u002Fvector-engine\u002Fdeployment","03.vector-engine\u002F06.deployment",1793986308929]