@react-x11/components 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (783) hide show
  1. package/README.md +979 -21
  2. package/dist/ansi/cast.d.ts +48 -0
  3. package/dist/ansi/cast.d.ts.map +1 -0
  4. package/dist/ansi/cast.js +135 -0
  5. package/dist/ansi/cast.js.map +1 -0
  6. package/dist/ansi/index.d.ts +10 -0
  7. package/dist/ansi/index.d.ts.map +1 -0
  8. package/dist/ansi/index.js +27 -0
  9. package/dist/ansi/index.js.map +1 -0
  10. package/dist/ansi/palette.d.ts +79 -0
  11. package/dist/ansi/palette.d.ts.map +1 -0
  12. package/dist/ansi/palette.js +155 -0
  13. package/dist/ansi/palette.js.map +1 -0
  14. package/dist/ansi/parse.d.ts +114 -0
  15. package/dist/ansi/parse.d.ts.map +1 -0
  16. package/dist/ansi/parse.js +687 -0
  17. package/dist/ansi/parse.js.map +1 -0
  18. package/dist/ansi/sgr.d.ts +87 -0
  19. package/dist/ansi/sgr.d.ts.map +1 -0
  20. package/dist/ansi/sgr.js +302 -0
  21. package/dist/ansi/sgr.js.map +1 -0
  22. package/dist/ansi/utf8.d.ts +15 -0
  23. package/dist/ansi/utf8.d.ts.map +1 -0
  24. package/dist/ansi/utf8.js +82 -0
  25. package/dist/ansi/utf8.js.map +1 -0
  26. package/dist/calendar/Calendar.d.ts +136 -0
  27. package/dist/calendar/Calendar.d.ts.map +1 -0
  28. package/dist/calendar/Calendar.js +460 -0
  29. package/dist/calendar/Calendar.js.map +1 -0
  30. package/dist/calendar/DatePicker.d.ts +52 -0
  31. package/dist/calendar/DatePicker.d.ts.map +1 -0
  32. package/dist/calendar/DatePicker.js +257 -0
  33. package/dist/calendar/DatePicker.js.map +1 -0
  34. package/dist/calendar/dates.d.ts +90 -0
  35. package/dist/calendar/dates.d.ts.map +1 -0
  36. package/dist/calendar/dates.js +236 -0
  37. package/dist/calendar/dates.js.map +1 -0
  38. package/dist/calendar/index.d.ts +8 -0
  39. package/dist/calendar/index.d.ts.map +1 -0
  40. package/dist/calendar/index.js +15 -0
  41. package/dist/calendar/index.js.map +1 -0
  42. package/dist/charts/components.d.ts +141 -0
  43. package/dist/charts/components.d.ts.map +1 -0
  44. package/dist/charts/components.js +580 -0
  45. package/dist/charts/components.js.map +1 -0
  46. package/dist/charts/data.d.ts +198 -0
  47. package/dist/charts/data.d.ts.map +1 -0
  48. package/dist/charts/data.js +616 -0
  49. package/dist/charts/data.js.map +1 -0
  50. package/dist/charts/hx.d.ts +21 -0
  51. package/dist/charts/hx.d.ts.map +1 -0
  52. package/dist/charts/hx.js +15 -0
  53. package/dist/charts/hx.js.map +1 -0
  54. package/dist/charts/index.d.ts +27 -0
  55. package/dist/charts/index.d.ts.map +1 -0
  56. package/dist/charts/index.js +38 -0
  57. package/dist/charts/index.js.map +1 -0
  58. package/dist/charts/node.d.ts +96 -0
  59. package/dist/charts/node.d.ts.map +1 -0
  60. package/dist/charts/node.js +720 -0
  61. package/dist/charts/node.js.map +1 -0
  62. package/dist/charts/render.d.ts +153 -0
  63. package/dist/charts/render.d.ts.map +1 -0
  64. package/dist/charts/render.js +762 -0
  65. package/dist/charts/render.js.map +1 -0
  66. package/dist/charts/scale.d.ts +42 -0
  67. package/dist/charts/scale.d.ts.map +1 -0
  68. package/dist/charts/scale.js +173 -0
  69. package/dist/charts/scale.js.map +1 -0
  70. package/dist/charts/spec.d.ts +91 -0
  71. package/dist/charts/spec.d.ts.map +1 -0
  72. package/dist/charts/spec.js +33 -0
  73. package/dist/charts/spec.js.map +1 -0
  74. package/dist/charts/timers.d.ts +6 -0
  75. package/dist/charts/timers.d.ts.map +1 -0
  76. package/dist/charts/timers.js +14 -0
  77. package/dist/charts/timers.js.map +1 -0
  78. package/dist/code/hx.d.ts +24 -0
  79. package/dist/code/hx.d.ts.map +1 -0
  80. package/dist/code/hx.js +25 -0
  81. package/dist/code/hx.js.map +1 -0
  82. package/dist/code/index.d.ts +45 -0
  83. package/dist/code/index.d.ts.map +1 -0
  84. package/dist/code/index.js +93 -0
  85. package/dist/code/index.js.map +1 -0
  86. package/dist/code-editor/completion.d.ts +26 -0
  87. package/dist/code-editor/completion.d.ts.map +1 -0
  88. package/dist/code-editor/completion.js +129 -0
  89. package/dist/code-editor/completion.js.map +1 -0
  90. package/dist/code-editor/doc.d.ts +35 -0
  91. package/dist/code-editor/doc.d.ts.map +1 -0
  92. package/dist/code-editor/doc.js +162 -0
  93. package/dist/code-editor/doc.js.map +1 -0
  94. package/dist/code-editor/hx.d.ts +13 -0
  95. package/dist/code-editor/hx.d.ts.map +1 -0
  96. package/dist/code-editor/hx.js +10 -0
  97. package/dist/code-editor/hx.js.map +1 -0
  98. package/dist/code-editor/index.d.ts +88 -0
  99. package/dist/code-editor/index.d.ts.map +1 -0
  100. package/dist/code-editor/index.js +401 -0
  101. package/dist/code-editor/index.js.map +1 -0
  102. package/dist/code-editor/node.d.ts +343 -0
  103. package/dist/code-editor/node.d.ts.map +1 -0
  104. package/dist/code-editor/node.js +1521 -0
  105. package/dist/code-editor/node.js.map +1 -0
  106. package/dist/code-language/hljs.d.ts +47 -0
  107. package/dist/code-language/hljs.d.ts.map +1 -0
  108. package/dist/code-language/hljs.js +211 -0
  109. package/dist/code-language/hljs.js.map +1 -0
  110. package/dist/code-language/index.d.ts +22 -0
  111. package/dist/code-language/index.d.ts.map +1 -0
  112. package/dist/code-language/index.js +20 -0
  113. package/dist/code-language/index.js.map +1 -0
  114. package/dist/code-language/languages/glsl.d.ts +4 -0
  115. package/dist/code-language/languages/glsl.d.ts.map +1 -0
  116. package/dist/code-language/languages/glsl.js +99 -0
  117. package/dist/code-language/languages/glsl.js.map +1 -0
  118. package/dist/code-language/languages/javascript.d.ts +10 -0
  119. package/dist/code-language/languages/javascript.d.ts.map +1 -0
  120. package/dist/code-language/languages/javascript.js +360 -0
  121. package/dist/code-language/languages/javascript.js.map +1 -0
  122. package/dist/code-language/languages/json.d.ts +4 -0
  123. package/dist/code-language/languages/json.d.ts.map +1 -0
  124. package/dist/code-language/languages/json.js +68 -0
  125. package/dist/code-language/languages/json.js.map +1 -0
  126. package/dist/code-language/languages/shell.d.ts +4 -0
  127. package/dist/code-language/languages/shell.d.ts.map +1 -0
  128. package/dist/code-language/languages/shell.js +189 -0
  129. package/dist/code-language/languages/shell.js.map +1 -0
  130. package/dist/code-language/languages/sql.d.ts +11 -0
  131. package/dist/code-language/languages/sql.d.ts.map +1 -0
  132. package/dist/code-language/languages/sql.js +133 -0
  133. package/dist/code-language/languages/sql.js.map +1 -0
  134. package/dist/code-language/lezer.d.ts +24 -0
  135. package/dist/code-language/lezer.d.ts.map +1 -0
  136. package/dist/code-language/lezer.js +148 -0
  137. package/dist/code-language/lezer.js.map +1 -0
  138. package/dist/code-language/registry.d.ts +19 -0
  139. package/dist/code-language/registry.d.ts.map +1 -0
  140. package/dist/code-language/registry.js +56 -0
  141. package/dist/code-language/registry.js.map +1 -0
  142. package/dist/code-language/runs.d.ts +35 -0
  143. package/dist/code-language/runs.d.ts.map +1 -0
  144. package/dist/code-language/runs.js +88 -0
  145. package/dist/code-language/runs.js.map +1 -0
  146. package/dist/code-language/stream.d.ts +70 -0
  147. package/dist/code-language/stream.d.ts.map +1 -0
  148. package/dist/code-language/stream.js +243 -0
  149. package/dist/code-language/stream.js.map +1 -0
  150. package/dist/code-language/textmate.d.ts +27 -0
  151. package/dist/code-language/textmate.d.ts.map +1 -0
  152. package/dist/code-language/textmate.js +86 -0
  153. package/dist/code-language/textmate.js.map +1 -0
  154. package/dist/code-language/theme.d.ts +26 -0
  155. package/dist/code-language/theme.d.ts.map +1 -0
  156. package/dist/code-language/theme.js +108 -0
  157. package/dist/code-language/theme.js.map +1 -0
  158. package/dist/code-language/timers.d.ts +7 -0
  159. package/dist/code-language/timers.d.ts.map +1 -0
  160. package/dist/code-language/timers.js +22 -0
  161. package/dist/code-language/timers.js.map +1 -0
  162. package/dist/code-language/types.d.ts +173 -0
  163. package/dist/code-language/types.d.ts.map +1 -0
  164. package/dist/code-language/types.js +41 -0
  165. package/dist/code-language/types.js.map +1 -0
  166. package/dist/codeblock/index.d.ts +69 -0
  167. package/dist/codeblock/index.d.ts.map +1 -0
  168. package/dist/codeblock/index.js +85 -0
  169. package/dist/codeblock/index.js.map +1 -0
  170. package/dist/color-picker/ColorField.d.ts +39 -0
  171. package/dist/color-picker/ColorField.d.ts.map +1 -0
  172. package/dist/color-picker/ColorField.js +239 -0
  173. package/dist/color-picker/ColorField.js.map +1 -0
  174. package/dist/color-picker/ColorPicker.d.ts +109 -0
  175. package/dist/color-picker/ColorPicker.d.ts.map +1 -0
  176. package/dist/color-picker/ColorPicker.js +757 -0
  177. package/dist/color-picker/ColorPicker.js.map +1 -0
  178. package/dist/color-picker/color.d.ts +105 -0
  179. package/dist/color-picker/color.d.ts.map +1 -0
  180. package/dist/color-picker/color.js +313 -0
  181. package/dist/color-picker/color.js.map +1 -0
  182. package/dist/color-picker/index.d.ts +8 -0
  183. package/dist/color-picker/index.d.ts.map +1 -0
  184. package/dist/color-picker/index.js +19 -0
  185. package/dist/color-picker/index.js.map +1 -0
  186. package/dist/desktop-calendar/eds.d.ts +102 -0
  187. package/dist/desktop-calendar/eds.d.ts.map +1 -0
  188. package/dist/desktop-calendar/eds.js +356 -0
  189. package/dist/desktop-calendar/eds.js.map +1 -0
  190. package/dist/desktop-calendar/ical.d.ts +63 -0
  191. package/dist/desktop-calendar/ical.d.ts.map +1 -0
  192. package/dist/desktop-calendar/ical.js +57 -0
  193. package/dist/desktop-calendar/ical.js.map +1 -0
  194. package/dist/desktop-calendar/index.d.ts +72 -0
  195. package/dist/desktop-calendar/index.d.ts.map +1 -0
  196. package/dist/desktop-calendar/index.js +213 -0
  197. package/dist/desktop-calendar/index.js.map +1 -0
  198. package/dist/embed/client.d.ts +121 -0
  199. package/dist/embed/client.d.ts.map +1 -0
  200. package/dist/embed/client.js +203 -0
  201. package/dist/embed/client.js.map +1 -0
  202. package/dist/embed/host.d.ts +96 -0
  203. package/dist/embed/host.d.ts.map +1 -0
  204. package/dist/embed/host.js +266 -0
  205. package/dist/embed/host.js.map +1 -0
  206. package/dist/embed/index.d.ts +5 -0
  207. package/dist/embed/index.d.ts.map +1 -0
  208. package/dist/embed/index.js +13 -0
  209. package/dist/embed/index.js.map +1 -0
  210. package/dist/embed/timers.d.ts +6 -0
  211. package/dist/embed/timers.d.ts.map +1 -0
  212. package/dist/embed/timers.js +16 -0
  213. package/dist/embed/timers.js.map +1 -0
  214. package/dist/flow/draw.d.ts +45 -0
  215. package/dist/flow/draw.d.ts.map +1 -0
  216. package/dist/flow/draw.js +295 -0
  217. package/dist/flow/draw.js.map +1 -0
  218. package/dist/flow/index.d.ts +64 -0
  219. package/dist/flow/index.d.ts.map +1 -0
  220. package/dist/flow/index.js +306 -0
  221. package/dist/flow/index.js.map +1 -0
  222. package/dist/flow/model.d.ts +158 -0
  223. package/dist/flow/model.d.ts.map +1 -0
  224. package/dist/flow/model.js +566 -0
  225. package/dist/flow/model.js.map +1 -0
  226. package/dist/flow/node.d.ts +429 -0
  227. package/dist/flow/node.d.ts.map +1 -0
  228. package/dist/flow/node.js +3025 -0
  229. package/dist/flow/node.js.map +1 -0
  230. package/dist/flow/paths.d.ts +43 -0
  231. package/dist/flow/paths.d.ts.map +1 -0
  232. package/dist/flow/paths.js +327 -0
  233. package/dist/flow/paths.js.map +1 -0
  234. package/dist/flow/types.d.ts +561 -0
  235. package/dist/flow/types.d.ts.map +1 -0
  236. package/dist/flow/types.js +2 -0
  237. package/dist/flow/types.js.map +1 -0
  238. package/dist/formula/hx.d.ts +24 -0
  239. package/dist/formula/hx.d.ts.map +1 -0
  240. package/dist/formula/hx.js +25 -0
  241. package/dist/formula/hx.js.map +1 -0
  242. package/dist/formula/index.d.ts +74 -0
  243. package/dist/formula/index.d.ts.map +1 -0
  244. package/dist/formula/index.js +155 -0
  245. package/dist/formula/index.js.map +1 -0
  246. package/dist/formula/katex.d.ts +78 -0
  247. package/dist/formula/katex.d.ts.map +1 -0
  248. package/dist/formula/katex.js +130 -0
  249. package/dist/formula/katex.js.map +1 -0
  250. package/dist/formula/layout.d.ts +103 -0
  251. package/dist/formula/layout.d.ts.map +1 -0
  252. package/dist/formula/layout.js +716 -0
  253. package/dist/formula/layout.js.map +1 -0
  254. package/dist/formula/node.d.ts +50 -0
  255. package/dist/formula/node.d.ts.map +1 -0
  256. package/dist/formula/node.js +351 -0
  257. package/dist/formula/node.js.map +1 -0
  258. package/dist/html/controls.d.ts +48 -0
  259. package/dist/html/controls.d.ts.map +1 -0
  260. package/dist/html/controls.js +195 -0
  261. package/dist/html/controls.js.map +1 -0
  262. package/dist/html/css/cascade.d.ts +51 -0
  263. package/dist/html/css/cascade.d.ts.map +1 -0
  264. package/dist/html/css/cascade.js +552 -0
  265. package/dist/html/css/cascade.js.map +1 -0
  266. package/dist/html/css/parse.d.ts +74 -0
  267. package/dist/html/css/parse.d.ts.map +1 -0
  268. package/dist/html/css/parse.js +464 -0
  269. package/dist/html/css/parse.js.map +1 -0
  270. package/dist/html/css/style.d.ts +142 -0
  271. package/dist/html/css/style.d.ts.map +1 -0
  272. package/dist/html/css/style.js +1145 -0
  273. package/dist/html/css/style.js.map +1 -0
  274. package/dist/html/css/ua.d.ts +5 -0
  275. package/dist/html/css/ua.d.ts.map +1 -0
  276. package/dist/html/css/ua.js +171 -0
  277. package/dist/html/css/ua.js.map +1 -0
  278. package/dist/html/css/values.d.ts +78 -0
  279. package/dist/html/css/values.d.ts.map +1 -0
  280. package/dist/html/css/values.js +330 -0
  281. package/dist/html/css/values.js.map +1 -0
  282. package/dist/html/dom.d.ts +112 -0
  283. package/dist/html/dom.d.ts.map +1 -0
  284. package/dist/html/dom.js +374 -0
  285. package/dist/html/dom.js.map +1 -0
  286. package/dist/html/hx.d.ts +24 -0
  287. package/dist/html/hx.d.ts.map +1 -0
  288. package/dist/html/hx.js +29 -0
  289. package/dist/html/hx.js.map +1 -0
  290. package/dist/html/index.d.ts +137 -0
  291. package/dist/html/index.d.ts.map +1 -0
  292. package/dist/html/index.js +339 -0
  293. package/dist/html/index.js.map +1 -0
  294. package/dist/html/layout/block.d.ts +58 -0
  295. package/dist/html/layout/block.d.ts.map +1 -0
  296. package/dist/html/layout/block.js +724 -0
  297. package/dist/html/layout/block.js.map +1 -0
  298. package/dist/html/layout/boxes.d.ts +261 -0
  299. package/dist/html/layout/boxes.d.ts.map +1 -0
  300. package/dist/html/layout/boxes.js +725 -0
  301. package/dist/html/layout/boxes.js.map +1 -0
  302. package/dist/html/layout/flex.d.ts +16 -0
  303. package/dist/html/layout/flex.d.ts.map +1 -0
  304. package/dist/html/layout/flex.js +242 -0
  305. package/dist/html/layout/flex.js.map +1 -0
  306. package/dist/html/layout/floats.d.ts +50 -0
  307. package/dist/html/layout/floats.d.ts.map +1 -0
  308. package/dist/html/layout/floats.js +110 -0
  309. package/dist/html/layout/floats.js.map +1 -0
  310. package/dist/html/layout/inline.d.ts +44 -0
  311. package/dist/html/layout/inline.d.ts.map +1 -0
  312. package/dist/html/layout/inline.js +700 -0
  313. package/dist/html/layout/inline.js.map +1 -0
  314. package/dist/html/layout/table.d.ts +5 -0
  315. package/dist/html/layout/table.d.ts.map +1 -0
  316. package/dist/html/layout/table.js +340 -0
  317. package/dist/html/layout/table.js.map +1 -0
  318. package/dist/html/node.d.ts +149 -0
  319. package/dist/html/node.d.ts.map +1 -0
  320. package/dist/html/node.js +861 -0
  321. package/dist/html/node.js.map +1 -0
  322. package/dist/html/paint.d.ts +48 -0
  323. package/dist/html/paint.d.ts.map +1 -0
  324. package/dist/html/paint.js +495 -0
  325. package/dist/html/paint.js.map +1 -0
  326. package/dist/html/resources.d.ts +48 -0
  327. package/dist/html/resources.d.ts.map +1 -0
  328. package/dist/html/resources.js +156 -0
  329. package/dist/html/resources.js.map +1 -0
  330. package/dist/index.d.ts +48 -0
  331. package/dist/index.d.ts.map +1 -0
  332. package/dist/index.js +92 -0
  333. package/dist/index.js.map +1 -0
  334. package/dist/internal/heights.d.ts +81 -0
  335. package/dist/internal/heights.d.ts.map +1 -0
  336. package/dist/internal/heights.js +193 -0
  337. package/dist/internal/heights.js.map +1 -0
  338. package/dist/internal/hx.d.ts +24 -0
  339. package/dist/internal/hx.d.ts.map +1 -0
  340. package/dist/internal/hx.js +27 -0
  341. package/dist/internal/hx.js.map +1 -0
  342. package/dist/internal/text.d.ts +6 -0
  343. package/dist/internal/text.d.ts.map +1 -0
  344. package/dist/internal/text.js +44 -0
  345. package/dist/internal/text.js.map +1 -0
  346. package/dist/internal/timers.d.ts +8 -0
  347. package/dist/internal/timers.d.ts.map +1 -0
  348. package/dist/internal/timers.js +22 -0
  349. package/dist/internal/timers.js.map +1 -0
  350. package/dist/internal/widget.d.ts +40 -0
  351. package/dist/internal/widget.d.ts.map +1 -0
  352. package/dist/internal/widget.js +44 -0
  353. package/dist/internal/widget.js.map +1 -0
  354. package/dist/markdown/ast.d.ts +126 -0
  355. package/dist/markdown/ast.d.ts.map +1 -0
  356. package/dist/markdown/ast.js +8 -0
  357. package/dist/markdown/ast.js.map +1 -0
  358. package/dist/markdown/hx.d.ts +24 -0
  359. package/dist/markdown/hx.d.ts.map +1 -0
  360. package/dist/markdown/hx.js +25 -0
  361. package/dist/markdown/hx.js.map +1 -0
  362. package/dist/markdown/index.d.ts +90 -0
  363. package/dist/markdown/index.d.ts.map +1 -0
  364. package/dist/markdown/index.js +413 -0
  365. package/dist/markdown/index.js.map +1 -0
  366. package/dist/markdown/parse.d.ts +8 -0
  367. package/dist/markdown/parse.d.ts.map +1 -0
  368. package/dist/markdown/parse.js +911 -0
  369. package/dist/markdown/parse.js.map +1 -0
  370. package/dist/markdown/spans.d.ts +20 -0
  371. package/dist/markdown/spans.d.ts.map +1 -0
  372. package/dist/markdown/spans.js +96 -0
  373. package/dist/markdown/spans.js.map +1 -0
  374. package/dist/media-player/backends.d.ts +64 -0
  375. package/dist/media-player/backends.d.ts.map +1 -0
  376. package/dist/media-player/backends.js +110 -0
  377. package/dist/media-player/backends.js.map +1 -0
  378. package/dist/media-player/control.d.ts +40 -0
  379. package/dist/media-player/control.d.ts.map +1 -0
  380. package/dist/media-player/control.js +44 -0
  381. package/dist/media-player/control.js.map +1 -0
  382. package/dist/media-player/hx.d.ts +24 -0
  383. package/dist/media-player/hx.d.ts.map +1 -0
  384. package/dist/media-player/hx.js +25 -0
  385. package/dist/media-player/hx.js.map +1 -0
  386. package/dist/media-player/index.d.ts +107 -0
  387. package/dist/media-player/index.d.ts.map +1 -0
  388. package/dist/media-player/index.js +219 -0
  389. package/dist/media-player/index.js.map +1 -0
  390. package/dist/media-player/mpv.d.ts +4 -0
  391. package/dist/media-player/mpv.d.ts.map +1 -0
  392. package/dist/media-player/mpv.js +120 -0
  393. package/dist/media-player/mpv.js.map +1 -0
  394. package/dist/media-player/vlc.d.ts +8 -0
  395. package/dist/media-player/vlc.d.ts.map +1 -0
  396. package/dist/media-player/vlc.js +83 -0
  397. package/dist/media-player/vlc.js.map +1 -0
  398. package/dist/richtext/index.d.ts +19 -0
  399. package/dist/richtext/index.d.ts.map +1 -0
  400. package/dist/richtext/index.js +4 -0
  401. package/dist/richtext/index.js.map +1 -0
  402. package/dist/richtext/links.d.ts +12 -0
  403. package/dist/richtext/links.d.ts.map +1 -0
  404. package/dist/richtext/links.js +64 -0
  405. package/dist/richtext/links.js.map +1 -0
  406. package/dist/richtext/menu.d.ts +11 -0
  407. package/dist/richtext/menu.d.ts.map +1 -0
  408. package/dist/richtext/menu.js +43 -0
  409. package/dist/richtext/menu.js.map +1 -0
  410. package/dist/richtext/node.d.ts +151 -0
  411. package/dist/richtext/node.d.ts.map +1 -0
  412. package/dist/richtext/node.js +255 -0
  413. package/dist/richtext/node.js.map +1 -0
  414. package/dist/richtext/runs.d.ts +92 -0
  415. package/dist/richtext/runs.d.ts.map +1 -0
  416. package/dist/richtext/runs.js +158 -0
  417. package/dist/richtext/runs.js.map +1 -0
  418. package/dist/table/hx.d.ts +24 -0
  419. package/dist/table/hx.d.ts.map +1 -0
  420. package/dist/table/hx.js +25 -0
  421. package/dist/table/hx.js.map +1 -0
  422. package/dist/table/index.d.ts +169 -0
  423. package/dist/table/index.d.ts.map +1 -0
  424. package/dist/table/index.js +844 -0
  425. package/dist/table/index.js.map +1 -0
  426. package/dist/table/rows.d.ts +136 -0
  427. package/dist/table/rows.d.ts.map +1 -0
  428. package/dist/table/rows.js +146 -0
  429. package/dist/table/rows.js.map +1 -0
  430. package/dist/terminal/backends.d.ts +105 -0
  431. package/dist/terminal/backends.d.ts.map +1 -0
  432. package/dist/terminal/backends.js +185 -0
  433. package/dist/terminal/backends.js.map +1 -0
  434. package/dist/terminal/hx.d.ts +24 -0
  435. package/dist/terminal/hx.d.ts.map +1 -0
  436. package/dist/terminal/hx.js +25 -0
  437. package/dist/terminal/hx.js.map +1 -0
  438. package/dist/terminal/index.d.ts +160 -0
  439. package/dist/terminal/index.d.ts.map +1 -0
  440. package/dist/terminal/index.js +344 -0
  441. package/dist/terminal/index.js.map +1 -0
  442. package/dist/terminal/title.d.ts +24 -0
  443. package/dist/terminal/title.d.ts.map +1 -0
  444. package/dist/terminal/title.js +129 -0
  445. package/dist/terminal/title.js.map +1 -0
  446. package/dist/terminal/vt/colors.d.ts +63 -0
  447. package/dist/terminal/vt/colors.d.ts.map +1 -0
  448. package/dist/terminal/vt/colors.js +203 -0
  449. package/dist/terminal/vt/colors.js.map +1 -0
  450. package/dist/terminal/vt/diff.d.ts +117 -0
  451. package/dist/terminal/vt/diff.d.ts.map +1 -0
  452. package/dist/terminal/vt/diff.js +358 -0
  453. package/dist/terminal/vt/diff.js.map +1 -0
  454. package/dist/terminal/vt/fonts.d.ts +92 -0
  455. package/dist/terminal/vt/fonts.d.ts.map +1 -0
  456. package/dist/terminal/vt/fonts.js +178 -0
  457. package/dist/terminal/vt/fonts.js.map +1 -0
  458. package/dist/terminal/vt/index.d.ts +78 -0
  459. package/dist/terminal/vt/index.d.ts.map +1 -0
  460. package/dist/terminal/vt/index.js +312 -0
  461. package/dist/terminal/vt/index.js.map +1 -0
  462. package/dist/terminal/vt/keys.d.ts +74 -0
  463. package/dist/terminal/vt/keys.d.ts.map +1 -0
  464. package/dist/terminal/vt/keys.js +309 -0
  465. package/dist/terminal/vt/keys.js.map +1 -0
  466. package/dist/terminal/vt/mouse.d.ts +44 -0
  467. package/dist/terminal/vt/mouse.d.ts.map +1 -0
  468. package/dist/terminal/vt/mouse.js +106 -0
  469. package/dist/terminal/vt/mouse.js.map +1 -0
  470. package/dist/terminal/vt/node.d.ts +246 -0
  471. package/dist/terminal/vt/node.d.ts.map +1 -0
  472. package/dist/terminal/vt/node.js +1068 -0
  473. package/dist/terminal/vt/node.js.map +1 -0
  474. package/dist/terminal/vt/pty.d.ts +81 -0
  475. package/dist/terminal/vt/pty.d.ts.map +1 -0
  476. package/dist/terminal/vt/pty.js +201 -0
  477. package/dist/terminal/vt/pty.js.map +1 -0
  478. package/dist/terminal/vt/renderer.d.ts +179 -0
  479. package/dist/terminal/vt/renderer.d.ts.map +1 -0
  480. package/dist/terminal/vt/renderer.js +357 -0
  481. package/dist/terminal/vt/renderer.js.map +1 -0
  482. package/dist/terminal/vt/timers.d.ts +6 -0
  483. package/dist/terminal/vt/timers.d.ts.map +1 -0
  484. package/dist/terminal/vt/timers.js +16 -0
  485. package/dist/terminal/vt/timers.js.map +1 -0
  486. package/dist/terminal/vt/xterm.d.ts +142 -0
  487. package/dist/terminal/vt/xterm.d.ts.map +1 -0
  488. package/dist/terminal/vt/xterm.js +32 -0
  489. package/dist/terminal/vt/xterm.js.map +1 -0
  490. package/dist/terminal-output/hx.d.ts +24 -0
  491. package/dist/terminal-output/hx.d.ts.map +1 -0
  492. package/dist/terminal-output/hx.js +25 -0
  493. package/dist/terminal-output/hx.js.map +1 -0
  494. package/dist/terminal-output/index.d.ts +92 -0
  495. package/dist/terminal-output/index.d.ts.map +1 -0
  496. package/dist/terminal-output/index.js +179 -0
  497. package/dist/terminal-output/index.js.map +1 -0
  498. package/dist/terminal-output/runs.d.ts +27 -0
  499. package/dist/terminal-output/runs.d.ts.map +1 -0
  500. package/dist/terminal-output/runs.js +66 -0
  501. package/dist/terminal-output/runs.js.map +1 -0
  502. package/dist/three/canvas.d.ts +46 -0
  503. package/dist/three/canvas.d.ts.map +1 -0
  504. package/dist/three/canvas.js +305 -0
  505. package/dist/three/canvas.js.map +1 -0
  506. package/dist/three/events.d.ts +64 -0
  507. package/dist/three/events.d.ts.map +1 -0
  508. package/dist/three/events.js +146 -0
  509. package/dist/three/events.js.map +1 -0
  510. package/dist/three/geometries.d.ts +89 -0
  511. package/dist/three/geometries.d.ts.map +1 -0
  512. package/dist/three/geometries.js +345 -0
  513. package/dist/three/geometries.js.map +1 -0
  514. package/dist/three/globals.d.ts +7 -0
  515. package/dist/three/globals.d.ts.map +1 -0
  516. package/dist/three/globals.js +20 -0
  517. package/dist/three/globals.js.map +1 -0
  518. package/dist/three/hx.d.ts +9 -0
  519. package/dist/three/hx.d.ts.map +1 -0
  520. package/dist/three/hx.js +10 -0
  521. package/dist/three/hx.js.map +1 -0
  522. package/dist/three/index.d.ts +22 -0
  523. package/dist/three/index.d.ts.map +1 -0
  524. package/dist/three/index.js +24 -0
  525. package/dist/three/index.js.map +1 -0
  526. package/dist/three/jsx-dev-runtime.d.ts +19 -0
  527. package/dist/three/jsx-dev-runtime.d.ts.map +1 -0
  528. package/dist/three/jsx-dev-runtime.js +2 -0
  529. package/dist/three/jsx-dev-runtime.js.map +1 -0
  530. package/dist/three/jsx-runtime.d.ts +19 -0
  531. package/dist/three/jsx-runtime.d.ts.map +1 -0
  532. package/dist/three/jsx-runtime.js +2 -0
  533. package/dist/three/jsx-runtime.js.map +1 -0
  534. package/dist/three/jsx.d.ts +198 -0
  535. package/dist/three/jsx.d.ts.map +1 -0
  536. package/dist/three/jsx.js +2 -0
  537. package/dist/three/jsx.js.map +1 -0
  538. package/dist/three/materials.d.ts +125 -0
  539. package/dist/three/materials.d.ts.map +1 -0
  540. package/dist/three/materials.js +229 -0
  541. package/dist/three/materials.js.map +1 -0
  542. package/dist/three/math.d.ts +146 -0
  543. package/dist/three/math.d.ts.map +1 -0
  544. package/dist/three/math.js +464 -0
  545. package/dist/three/math.js.map +1 -0
  546. package/dist/three/objects.d.ts +185 -0
  547. package/dist/three/objects.d.ts.map +1 -0
  548. package/dist/three/objects.js +309 -0
  549. package/dist/three/objects.js.map +1 -0
  550. package/dist/three/passes.d.ts +54 -0
  551. package/dist/three/passes.d.ts.map +1 -0
  552. package/dist/three/passes.js +78 -0
  553. package/dist/three/passes.js.map +1 -0
  554. package/dist/three/postprocess.d.ts +85 -0
  555. package/dist/three/postprocess.d.ts.map +1 -0
  556. package/dist/three/postprocess.js +503 -0
  557. package/dist/three/postprocess.js.map +1 -0
  558. package/dist/three/raycast.d.ts +24 -0
  559. package/dist/three/raycast.d.ts.map +1 -0
  560. package/dist/three/raycast.js +138 -0
  561. package/dist/three/raycast.js.map +1 -0
  562. package/dist/three/reconciler.d.ts +48 -0
  563. package/dist/three/reconciler.d.ts.map +1 -0
  564. package/dist/three/reconciler.js +416 -0
  565. package/dist/three/reconciler.js.map +1 -0
  566. package/dist/three/renderer-direct.d.ts +102 -0
  567. package/dist/three/renderer-direct.d.ts.map +1 -0
  568. package/dist/three/renderer-direct.js +782 -0
  569. package/dist/three/renderer-direct.js.map +1 -0
  570. package/dist/three/renderer-indirect.d.ts +68 -0
  571. package/dist/three/renderer-indirect.d.ts.map +1 -0
  572. package/dist/three/renderer-indirect.js +438 -0
  573. package/dist/three/renderer-indirect.js.map +1 -0
  574. package/dist/three/store.d.ts +81 -0
  575. package/dist/three/store.d.ts.map +1 -0
  576. package/dist/three/store.js +110 -0
  577. package/dist/three/store.js.map +1 -0
  578. package/dist/timeline/hx.d.ts +18 -0
  579. package/dist/timeline/hx.d.ts.map +1 -0
  580. package/dist/timeline/hx.js +10 -0
  581. package/dist/timeline/hx.js.map +1 -0
  582. package/dist/timeline/index.d.ts +152 -0
  583. package/dist/timeline/index.d.ts.map +1 -0
  584. package/dist/timeline/index.js +383 -0
  585. package/dist/timeline/index.js.map +1 -0
  586. package/dist/tray-host/hx.d.ts +24 -0
  587. package/dist/tray-host/hx.d.ts.map +1 -0
  588. package/dist/tray-host/hx.js +25 -0
  589. package/dist/tray-host/hx.js.map +1 -0
  590. package/dist/tray-host/index.d.ts +110 -0
  591. package/dist/tray-host/index.d.ts.map +1 -0
  592. package/dist/tray-host/index.js +191 -0
  593. package/dist/tray-host/index.js.map +1 -0
  594. package/dist/tray-host/manager.d.ts +137 -0
  595. package/dist/tray-host/manager.d.ts.map +1 -0
  596. package/dist/tray-host/manager.js +462 -0
  597. package/dist/tray-host/manager.js.map +1 -0
  598. package/dist/tray-host/notify.d.ts +22 -0
  599. package/dist/tray-host/notify.d.ts.map +1 -0
  600. package/dist/tray-host/notify.js +74 -0
  601. package/dist/tray-host/notify.js.map +1 -0
  602. package/dist/tray-host/protocol.d.ts +106 -0
  603. package/dist/tray-host/protocol.d.ts.map +1 -0
  604. package/dist/tray-host/protocol.js +191 -0
  605. package/dist/tray-host/protocol.js.map +1 -0
  606. package/dist/tree/hx.d.ts +24 -0
  607. package/dist/tree/hx.d.ts.map +1 -0
  608. package/dist/tree/hx.js +25 -0
  609. package/dist/tree/hx.js.map +1 -0
  610. package/dist/tree/index.d.ts +221 -0
  611. package/dist/tree/index.d.ts.map +1 -0
  612. package/dist/tree/index.js +716 -0
  613. package/dist/tree/index.js.map +1 -0
  614. package/dist/tree/internal.d.ts +18 -0
  615. package/dist/tree/internal.d.ts.map +1 -0
  616. package/dist/tree/internal.js +66 -0
  617. package/dist/tree/internal.js.map +1 -0
  618. package/dist/tree/rows.d.ts +177 -0
  619. package/dist/tree/rows.d.ts.map +1 -0
  620. package/dist/tree/rows.js +179 -0
  621. package/dist/tree/rows.js.map +1 -0
  622. package/package.json +166 -12
  623. package/src/ansi/cast.ts +159 -0
  624. package/src/ansi/index.ts +53 -0
  625. package/src/ansi/palette.ts +226 -0
  626. package/src/ansi/parse.ts +780 -0
  627. package/src/ansi/sgr.ts +380 -0
  628. package/src/ansi/utf8.ts +84 -0
  629. package/src/calendar/Calendar.ts +744 -0
  630. package/src/calendar/DatePicker.ts +368 -0
  631. package/src/calendar/dates.ts +307 -0
  632. package/src/calendar/index.ts +51 -0
  633. package/src/charts/components.ts +864 -0
  634. package/src/charts/data.ts +776 -0
  635. package/src/charts/hx.ts +39 -0
  636. package/src/charts/index.ts +99 -0
  637. package/src/charts/node.ts +932 -0
  638. package/src/charts/render.ts +982 -0
  639. package/src/charts/scale.ts +214 -0
  640. package/src/charts/spec.ts +122 -0
  641. package/src/charts/timers.ts +24 -0
  642. package/src/code/hx.ts +51 -0
  643. package/src/code/index.ts +174 -0
  644. package/src/code-editor/completion.ts +161 -0
  645. package/src/code-editor/doc.ts +198 -0
  646. package/src/code-editor/hx.ts +26 -0
  647. package/src/code-editor/index.ts +615 -0
  648. package/src/code-editor/node.ts +1926 -0
  649. package/src/code-language/hljs.ts +302 -0
  650. package/src/code-language/index.ts +51 -0
  651. package/src/code-language/languages/glsl.ts +120 -0
  652. package/src/code-language/languages/javascript.ts +419 -0
  653. package/src/code-language/languages/json.ts +72 -0
  654. package/src/code-language/languages/shell.ts +221 -0
  655. package/src/code-language/languages/sql.ts +165 -0
  656. package/src/code-language/lezer.ts +190 -0
  657. package/src/code-language/registry.ts +66 -0
  658. package/src/code-language/runs.ts +128 -0
  659. package/src/code-language/stream.ts +306 -0
  660. package/src/code-language/textmate.ts +134 -0
  661. package/src/code-language/theme.ts +124 -0
  662. package/src/code-language/timers.ts +36 -0
  663. package/src/code-language/types.ts +252 -0
  664. package/src/codeblock/index.ts +146 -0
  665. package/src/color-picker/ColorField.ts +333 -0
  666. package/src/color-picker/ColorPicker.ts +1069 -0
  667. package/src/color-picker/color.ts +399 -0
  668. package/src/color-picker/index.ts +50 -0
  669. package/src/desktop-calendar/eds.ts +484 -0
  670. package/src/desktop-calendar/ical.ts +119 -0
  671. package/src/desktop-calendar/index.ts +287 -0
  672. package/src/embed/client.ts +311 -0
  673. package/src/embed/host.ts +432 -0
  674. package/src/embed/index.ts +33 -0
  675. package/src/embed/timers.ts +32 -0
  676. package/src/flow/draw.ts +418 -0
  677. package/src/flow/index.ts +473 -0
  678. package/src/flow/model.ts +687 -0
  679. package/src/flow/node.ts +3694 -0
  680. package/src/flow/paths.ts +403 -0
  681. package/src/flow/types.ts +634 -0
  682. package/src/formula/hx.ts +51 -0
  683. package/src/formula/index.ts +243 -0
  684. package/src/formula/katex.ts +209 -0
  685. package/src/formula/layout.ts +876 -0
  686. package/src/formula/node.ts +467 -0
  687. package/src/html/controls.ts +244 -0
  688. package/src/html/css/cascade.ts +606 -0
  689. package/src/html/css/parse.ts +500 -0
  690. package/src/html/css/style.ts +1371 -0
  691. package/src/html/css/ua.ts +174 -0
  692. package/src/html/css/values.ts +358 -0
  693. package/src/html/dom.ts +410 -0
  694. package/src/html/hx.ts +55 -0
  695. package/src/html/index.ts +545 -0
  696. package/src/html/layout/block.ts +876 -0
  697. package/src/html/layout/boxes.ts +981 -0
  698. package/src/html/layout/flex.ts +297 -0
  699. package/src/html/layout/floats.ts +125 -0
  700. package/src/html/layout/inline.ts +870 -0
  701. package/src/html/layout/table.ts +380 -0
  702. package/src/html/node.ts +967 -0
  703. package/src/html/paint.ts +605 -0
  704. package/src/html/resources.ts +214 -0
  705. package/src/index.ts +638 -0
  706. package/src/internal/heights.ts +211 -0
  707. package/src/internal/hx.ts +53 -0
  708. package/src/internal/text.ts +44 -0
  709. package/src/internal/timers.ts +44 -0
  710. package/src/internal/widget.ts +92 -0
  711. package/src/markdown/ast.ts +163 -0
  712. package/src/markdown/hx.ts +51 -0
  713. package/src/markdown/index.ts +686 -0
  714. package/src/markdown/parse.ts +1037 -0
  715. package/src/markdown/spans.ts +143 -0
  716. package/src/media-player/backends.ts +155 -0
  717. package/src/media-player/control.ts +70 -0
  718. package/src/media-player/hx.ts +51 -0
  719. package/src/media-player/index.ts +378 -0
  720. package/src/media-player/mpv.ts +146 -0
  721. package/src/media-player/vlc.ts +97 -0
  722. package/src/richtext/index.ts +42 -0
  723. package/src/richtext/links.ts +78 -0
  724. package/src/richtext/menu.ts +49 -0
  725. package/src/richtext/node.ts +406 -0
  726. package/src/richtext/runs.ts +253 -0
  727. package/src/table/hx.ts +51 -0
  728. package/src/table/index.ts +1219 -0
  729. package/src/table/rows.ts +275 -0
  730. package/src/terminal/backends.ts +242 -0
  731. package/src/terminal/hx.ts +51 -0
  732. package/src/terminal/index.ts +574 -0
  733. package/src/terminal/title.ts +172 -0
  734. package/src/terminal/vt/colors.ts +247 -0
  735. package/src/terminal/vt/diff.ts +467 -0
  736. package/src/terminal/vt/fonts.ts +233 -0
  737. package/src/terminal/vt/index.ts +443 -0
  738. package/src/terminal/vt/keys.ts +369 -0
  739. package/src/terminal/vt/mouse.ts +144 -0
  740. package/src/terminal/vt/node.ts +1242 -0
  741. package/src/terminal/vt/pty.ts +334 -0
  742. package/src/terminal/vt/renderer.ts +555 -0
  743. package/src/terminal/vt/timers.ts +31 -0
  744. package/src/terminal/vt/xterm.ts +193 -0
  745. package/src/terminal-output/hx.ts +51 -0
  746. package/src/terminal-output/index.ts +340 -0
  747. package/src/terminal-output/runs.ts +79 -0
  748. package/src/three/canvas.ts +451 -0
  749. package/src/three/events.ts +197 -0
  750. package/src/three/geometries.ts +429 -0
  751. package/src/three/globals.ts +34 -0
  752. package/src/three/hx.ts +22 -0
  753. package/src/three/index.ts +98 -0
  754. package/src/three/jsx-dev-runtime.ts +27 -0
  755. package/src/three/jsx-runtime.ts +38 -0
  756. package/src/three/jsx.ts +275 -0
  757. package/src/three/materials.ts +270 -0
  758. package/src/three/math.ts +585 -0
  759. package/src/three/objects.ts +397 -0
  760. package/src/three/passes.ts +90 -0
  761. package/src/three/postprocess.ts +677 -0
  762. package/src/three/raycast.ts +189 -0
  763. package/src/three/react-reconciler.d.ts +50 -0
  764. package/src/three/reconciler.ts +624 -0
  765. package/src/three/renderer-direct.ts +1055 -0
  766. package/src/three/renderer-indirect.ts +570 -0
  767. package/src/three/store.ts +207 -0
  768. package/src/timeline/hx.ts +31 -0
  769. package/src/timeline/index.ts +603 -0
  770. package/src/tray-host/hx.ts +51 -0
  771. package/src/tray-host/index.ts +331 -0
  772. package/src/tray-host/manager.ts +639 -0
  773. package/src/tray-host/notify.ts +102 -0
  774. package/src/tray-host/protocol.ts +235 -0
  775. package/src/tree/hx.ts +51 -0
  776. package/src/tree/index.ts +1087 -0
  777. package/src/tree/internal.ts +87 -0
  778. package/src/tree/rows.ts +334 -0
  779. package/src/index.d.ts +0 -2
  780. package/src/index.js +0 -9
  781. package/src/sparkline/index.d.ts +0 -29
  782. package/src/sparkline/index.js +0 -50
  783. package/src/sparkline/node.js +0 -72
@@ -0,0 +1,85 @@
1
+ type GL = any;
2
+ import type { DirectRenderer } from './renderer-direct.js';
3
+ import type { EffectComposer } from './passes.js';
4
+ interface FrameInfo {
5
+ width: number;
6
+ height: number;
7
+ }
8
+ /**
9
+ * The pass chain for one surface: its render targets, its programs and the
10
+ * full-screen quad they all draw. Owned by the canvas, which lends it the
11
+ * direct renderer — so a pass that will not build is reported exactly the
12
+ * way a material that will not build is, and `<shaderPass uniforms>` takes
13
+ * exactly what `<shaderMaterial uniforms>` takes.
14
+ */
15
+ export declare class PostProcessor {
16
+ private owner;
17
+ private targets;
18
+ private bloom;
19
+ private width;
20
+ private height;
21
+ private programs;
22
+ private quad;
23
+ private passes;
24
+ private read;
25
+ private startedAt;
26
+ private _usable;
27
+ constructor(owner: DirectRenderer);
28
+ /**
29
+ * Bind the scene's render target, so the surface's clear and the scene's
30
+ * draws land in a texture. False means "draw straight to the window" —
31
+ * because there is nothing to compose, or because something is missing —
32
+ * and is the answer the caller acts on.
33
+ */
34
+ begin(gl: GL, info: FrameInfo, composer: EffectComposer): boolean;
35
+ /**
36
+ * Run the chain. Each pass reads the target the previous one wrote; the
37
+ * last writes framebuffer 0, which is what `SwapBuffers` presents.
38
+ */
39
+ end(gl: GL, info: FrameInfo): boolean;
40
+ private runPass;
41
+ /**
42
+ * Bright pass, blur across, blur down, composite — four draws, the middle
43
+ * two at half resolution. Blurring at half size is both cheaper and wider:
44
+ * the same kernel covers twice as many source pixels.
45
+ */
46
+ private bloomPass;
47
+ /** The image, unchanged, into `target` — a pass that could not run. */
48
+ private copy;
49
+ /** `null` is the window's own framebuffer, the one that gets presented. */
50
+ private bindTarget;
51
+ private bindSource;
52
+ /**
53
+ * The three a post shader almost always wants. They are *set*, not
54
+ * injected — a pass that does not declare one gets no location back and
55
+ * the write is dropped, which is what keeps a shader copied from three.js
56
+ * (where these names are the author's to define) compiling unchanged.
57
+ */
58
+ private commonUniforms;
59
+ /** `<shaderPass uniforms>`, in three.js's `{ name: { value } }` shape. */
60
+ private userUniforms;
61
+ private drawQuad;
62
+ private quadBuffer;
63
+ /**
64
+ * One program per pass configuration. A `<shaderPass>` is keyed by its
65
+ * source, so editing the GLSL recompiles and changing a uniform does not.
66
+ */
67
+ private programFor;
68
+ /**
69
+ * Does this context have framebuffer objects? The direct backend exposes
70
+ * whatever `x11-dri` provides, so "the GL has no FBOs" is a real state.
71
+ * Reported once; the scene then draws to the window uncomposed, which is
72
+ * the same picture without the effects.
73
+ */
74
+ private usable;
75
+ private ensureTargets;
76
+ private ensureBloom;
77
+ private createTarget;
78
+ private destroyTarget;
79
+ private releaseTargets;
80
+ /** Every render target, on a resize or on the way out. */
81
+ private release;
82
+ dispose(gl: GL): void;
83
+ }
84
+ export {};
85
+ //# sourceMappingURL=postprocess.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postprocess.d.ts","sourceRoot":"","sources":["../../src/three/postprocess.ts"],"names":[],"mappings":"AAeA,KAAK,EAAE,GAAG,GAAG,CAAC;AAEd,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,sBAAsB,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAoB,MAAM,aAAa,CAAC;AAsLpE,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAA6D;IAC7E,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,OAAO,CAAsB;IAErC,YAAY,KAAK,EAAE,cAAc,EAEhC;IAED;;;;;OAKG;IACH,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAahE;IAED;;;OAGG;IACH,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAyBpC;IAED,OAAO,CAAC,OAAO;IA8Bf;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAiDjB,uEAAuE;IACvE,OAAO,CAAC,IAAI;IAcZ,2EAA2E;IAC3E,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,UAAU;IAYlB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAmBtB,0EAA0E;IAC1E,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,UAAU;IAQlB;;;OAGG;IACH,OAAO,CAAC,UAAU;IAgClB;;;;;OAKG;IACH,OAAO,CAAC,MAAM;IAkBd,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,YAAY;IA+EpB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,cAAc;IAOtB,0DAA0D;IAC1D,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAapB;CACF"}
@@ -0,0 +1,503 @@
1
+ import { BloomPass, VignettePass } from './passes.js';
2
+ import { now } from './globals.js';
3
+ /**
4
+ * Post shaders run at `highp`, both stages: `varying vec2 vUv` is declared
5
+ * by our vertex shader and again by the pass's fragment shader (that is how
6
+ * three.js's post shaders are written), and GLSL ES fails to link when the
7
+ * two precisions disagree. `mediump` guarantees only ~10 bits, which at
8
+ * 1080p is coarser than a texel — visible as stair-stepping in any blur.
9
+ */
10
+ const PRECISION = 'precision highp float;\n';
11
+ /**
12
+ * The full-screen triangle strip, in clip space. No uv attribute: the quad
13
+ * covers exactly [-1, 1], so the vertex shader derives the coordinate free.
14
+ */
15
+ const QUAD_VERTICES = new Float32Array([-1, -1, 1, -1, -1, 1, 1, 1]);
16
+ const QUAD_VERTEX_SHADER = `${PRECISION}attribute vec2 position;
17
+ varying vec2 vUv;
18
+ void main() {
19
+ vUv = position * 0.5 + 0.5;
20
+ gl_Position = vec4(position, 0.0, 1.0);
21
+ }`;
22
+ /** Hand the image on unchanged — the last pass of a chain that went wrong. */
23
+ const COPY_SHADER = `uniform sampler2D tDiffuse;
24
+ varying vec2 vUv;
25
+ void main() {
26
+ gl_FragColor = texture2D(tDiffuse, vUv);
27
+ }`;
28
+ const VIGNETTE_SHADER = `uniform sampler2D tDiffuse;
29
+ uniform float offset;
30
+ uniform float darkness;
31
+ varying vec2 vUv;
32
+ void main() {
33
+ vec4 texel = texture2D(tDiffuse, vUv);
34
+ // 0 at the centre, 1 in the corners
35
+ float d = distance(vUv, vec2(0.5)) * 1.41421356;
36
+ float v = smoothstep(offset, 1.0, d);
37
+ gl_FragColor = vec4(texel.rgb * (1.0 - v * darkness), texel.a);
38
+ }`;
39
+ // FXAA, the reduced form: find the local luma gradient from four diagonal
40
+ // neighbours, then blend along it. Worth having because the direct backend
41
+ // has no multisampling — an FBO with an MSAA attachment is an ES 3 feature —
42
+ // so this is the only antialiasing a composed scene can get.
43
+ const FXAA_SHADER = `uniform sampler2D tDiffuse;
44
+ uniform vec2 texelSize;
45
+ varying vec2 vUv;
46
+
47
+ const vec3 LUMA = vec3(0.299, 0.587, 0.114);
48
+ const float SPAN_MAX = 8.0;
49
+ const float REDUCE_MUL = 0.125;
50
+ const float REDUCE_MIN = 0.0078125;
51
+
52
+ void main() {
53
+ vec3 nw = texture2D(tDiffuse, vUv + vec2(-1.0, -1.0) * texelSize).rgb;
54
+ vec3 ne = texture2D(tDiffuse, vUv + vec2( 1.0, -1.0) * texelSize).rgb;
55
+ vec3 sw = texture2D(tDiffuse, vUv + vec2(-1.0, 1.0) * texelSize).rgb;
56
+ vec3 se = texture2D(tDiffuse, vUv + vec2( 1.0, 1.0) * texelSize).rgb;
57
+ vec4 texel = texture2D(tDiffuse, vUv);
58
+
59
+ float lumaNW = dot(nw, LUMA);
60
+ float lumaNE = dot(ne, LUMA);
61
+ float lumaSW = dot(sw, LUMA);
62
+ float lumaSE = dot(se, LUMA);
63
+ float lumaM = dot(texel.rgb, LUMA);
64
+ float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE)));
65
+ float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE)));
66
+
67
+ // the edge runs perpendicular to the luma gradient
68
+ vec2 dir = vec2(
69
+ -((lumaNW + lumaNE) - (lumaSW + lumaSE)),
70
+ ((lumaNW + lumaSW) - (lumaNE + lumaSE))
71
+ );
72
+ float reduce = max(
73
+ (lumaNW + lumaNE + lumaSW + lumaSE) * 0.25 * REDUCE_MUL,
74
+ REDUCE_MIN
75
+ );
76
+ float scale = 1.0 / (min(abs(dir.x), abs(dir.y)) + reduce);
77
+ dir = clamp(dir * scale, vec2(-SPAN_MAX), vec2(SPAN_MAX)) * texelSize;
78
+
79
+ vec3 inner = 0.5 * (
80
+ texture2D(tDiffuse, vUv + dir * (1.0 / 3.0 - 0.5)).rgb +
81
+ texture2D(tDiffuse, vUv + dir * (2.0 / 3.0 - 0.5)).rgb
82
+ );
83
+ vec3 outer = inner * 0.5 + 0.25 * (
84
+ texture2D(tDiffuse, vUv - dir * 0.5).rgb +
85
+ texture2D(tDiffuse, vUv + dir * 0.5).rgb
86
+ );
87
+ // the wider blend overshot the local range, so keep the narrow one
88
+ float lumaOuter = dot(outer, LUMA);
89
+ vec3 color = (lumaOuter < lumaMin || lumaOuter > lumaMax) ? inner : outer;
90
+ gl_FragColor = vec4(color, texel.a);
91
+ }`;
92
+ const BLOOM_BRIGHT_SHADER = `uniform sampler2D tDiffuse;
93
+ uniform float threshold;
94
+ varying vec2 vUv;
95
+ void main() {
96
+ vec3 color = texture2D(tDiffuse, vUv).rgb;
97
+ float luma = dot(color, vec3(0.2126, 0.7152, 0.0722));
98
+ // a soft knee rather than a step, so a surface drifting past the
99
+ // threshold brightens gradually instead of popping on
100
+ float keep = smoothstep(threshold, threshold + 0.15, luma);
101
+ gl_FragColor = vec4(color * keep, 1.0);
102
+ }`;
103
+ // A separable nine-tap Gaussian sampled at five points: each off-centre tap
104
+ // sits between two texels and lets the bilinear filter average them, which
105
+ // is nine texels' worth of blur for five fetches.
106
+ const BLOOM_BLUR_SHADER = `uniform sampler2D tDiffuse;
107
+ uniform vec2 direction;
108
+ varying vec2 vUv;
109
+ void main() {
110
+ vec3 sum = texture2D(tDiffuse, vUv).rgb * 0.2270270270;
111
+ sum += (texture2D(tDiffuse, vUv + direction * 1.3846153846).rgb +
112
+ texture2D(tDiffuse, vUv - direction * 1.3846153846).rgb) * 0.3162162162;
113
+ sum += (texture2D(tDiffuse, vUv + direction * 3.2307692308).rgb +
114
+ texture2D(tDiffuse, vUv - direction * 3.2307692308).rgb) * 0.0702702703;
115
+ gl_FragColor = vec4(sum, 1.0);
116
+ }`;
117
+ const BLOOM_COMPOSITE_SHADER = `uniform sampler2D tDiffuse;
118
+ uniform sampler2D tBloom;
119
+ uniform float strength;
120
+ varying vec2 vUv;
121
+ void main() {
122
+ vec4 base = texture2D(tDiffuse, vUv);
123
+ gl_FragColor = vec4(base.rgb + texture2D(tBloom, vUv).rgb * strength, base.a);
124
+ }`;
125
+ /** Single-shader passes: one program, one draw, fields straight to uniforms. */
126
+ const SIMPLE_PASSES = {
127
+ vignettePass: {
128
+ fragmentShader: VIGNETTE_SHADER,
129
+ uniforms(gl, program, pass) {
130
+ const vignette = pass;
131
+ gl.uniform1f(program.uniform('offset'), vignette.offset);
132
+ gl.uniform1f(program.uniform('darkness'), vignette.darkness);
133
+ },
134
+ },
135
+ fxaaPass: {
136
+ fragmentShader: FXAA_SHADER,
137
+ // `texelSize` is one of the uniforms every pass gets
138
+ uniforms() { },
139
+ },
140
+ };
141
+ /** The GL a render target needs, beyond what drawing a mesh needs. */
142
+ const FBO_ENTRY_POINTS = [
143
+ 'createFramebuffer',
144
+ 'bindFramebuffer',
145
+ 'framebufferTexture2D',
146
+ 'createRenderbuffer',
147
+ 'bindRenderbuffer',
148
+ 'renderbufferStorage',
149
+ 'framebufferRenderbuffer',
150
+ 'checkFramebufferStatus',
151
+ 'deleteFramebuffer',
152
+ 'deleteRenderbuffer',
153
+ ];
154
+ const half = (n) => Math.max(1, n >> 1);
155
+ /**
156
+ * The pass chain for one surface: its render targets, its programs and the
157
+ * full-screen quad they all draw. Owned by the canvas, which lends it the
158
+ * direct renderer — so a pass that will not build is reported exactly the
159
+ * way a material that will not build is, and `<shaderPass uniforms>` takes
160
+ * exactly what `<shaderMaterial uniforms>` takes.
161
+ */
162
+ export class PostProcessor {
163
+ owner;
164
+ targets = [null, null];
165
+ bloom = [null, null];
166
+ width = 0;
167
+ height = 0;
168
+ programs = new Map();
169
+ quad = null;
170
+ passes = null;
171
+ read = 0;
172
+ startedAt = null;
173
+ _usable;
174
+ constructor(owner) {
175
+ this.owner = owner;
176
+ }
177
+ /**
178
+ * Bind the scene's render target, so the surface's clear and the scene's
179
+ * draws land in a texture. False means "draw straight to the window" —
180
+ * because there is nothing to compose, or because something is missing —
181
+ * and is the answer the caller acts on.
182
+ */
183
+ begin(gl, info, composer) {
184
+ this.passes = null;
185
+ const passes = composer.enabled
186
+ ? composer.passes.filter((pass) => pass.enabled)
187
+ : [];
188
+ if (passes.length === 0)
189
+ return false;
190
+ if (!this.usable(gl))
191
+ return false;
192
+ if (!this.ensureTargets(gl, info.width, info.height))
193
+ return false;
194
+ this.passes = passes;
195
+ this.read = 0;
196
+ gl.bindFramebuffer(gl.FRAMEBUFFER, this.targets[0].framebuffer);
197
+ return true;
198
+ }
199
+ /**
200
+ * Run the chain. Each pass reads the target the previous one wrote; the
201
+ * last writes framebuffer 0, which is what `SwapBuffers` presents.
202
+ */
203
+ end(gl, info) {
204
+ const passes = this.passes;
205
+ this.passes = null;
206
+ if (!passes)
207
+ return false;
208
+ // a full-screen quad is not part of the scene: nothing occludes it,
209
+ // nothing culls it, and it replaces rather than blends with what is there
210
+ gl.disable(gl.DEPTH_TEST);
211
+ gl.disable(gl.CULL_FACE);
212
+ gl.disable(gl.BLEND);
213
+ gl.depthMask(false);
214
+ for (let i = 0; i < passes.length; i++) {
215
+ const last = i === passes.length - 1;
216
+ const source = this.targets[this.read];
217
+ const target = last ? null : this.targets[this.read ^ 1];
218
+ this.runPass(gl, passes[i], source, target, info);
219
+ if (!last)
220
+ this.read ^= 1;
221
+ }
222
+ // hand the context back as the scene expects to find it
223
+ gl.bindFramebuffer(gl.FRAMEBUFFER, 0);
224
+ gl.depthMask(true);
225
+ gl.enable(gl.DEPTH_TEST);
226
+ return true;
227
+ }
228
+ runPass(gl, pass, source, target, info) {
229
+ if (pass instanceof BloomPass) {
230
+ this.bloomPass(gl, pass, source, target, info);
231
+ return;
232
+ }
233
+ const program = this.programFor(gl, pass);
234
+ // A pass whose shader will not build hands the image on unchanged. The
235
+ // alternative is a frame of whatever was last in the target, which reads
236
+ // as a corrupt renderer rather than as one broken effect.
237
+ if (!program) {
238
+ this.copy(gl, source, target, info);
239
+ return;
240
+ }
241
+ this.bindTarget(gl, target, info);
242
+ gl.useProgram(program.program);
243
+ this.bindSource(gl, program, 'tDiffuse', source, 0);
244
+ this.commonUniforms(gl, program, info);
245
+ const simple = SIMPLE_PASSES[pass.kind];
246
+ if (simple)
247
+ simple.uniforms(gl, program, pass);
248
+ else
249
+ this.userUniforms(gl, program, pass);
250
+ this.drawQuad(gl, program);
251
+ }
252
+ /**
253
+ * Bright pass, blur across, blur down, composite — four draws, the middle
254
+ * two at half resolution. Blurring at half size is both cheaper and wider:
255
+ * the same kernel covers twice as many source pixels.
256
+ */
257
+ bloomPass(gl, pass, source, target, info) {
258
+ const bright = this.programFor(gl, pass, 'bright', BLOOM_BRIGHT_SHADER);
259
+ const blur = this.programFor(gl, pass, 'blur', BLOOM_BLUR_SHADER);
260
+ const composite = this.programFor(gl, pass, 'composite', BLOOM_COMPOSITE_SHADER);
261
+ const scratch = this.ensureBloom(gl, info.width, info.height);
262
+ if (!bright || !blur || !composite || !scratch) {
263
+ this.copy(gl, source, target, info);
264
+ return;
265
+ }
266
+ const radius = pass.radius;
267
+ this.bindTarget(gl, scratch[0], info);
268
+ gl.useProgram(bright.program);
269
+ this.bindSource(gl, bright, 'tDiffuse', source, 0);
270
+ gl.uniform1f(bright.uniform('threshold'), pass.threshold);
271
+ this.drawQuad(gl, bright);
272
+ // separable: across the half-size target, then down it
273
+ gl.useProgram(blur.program);
274
+ for (const [from, to, direction] of [
275
+ [0, 1, [radius / scratch[0].width, 0]],
276
+ [1, 0, [0, radius / scratch[0].height]],
277
+ ]) {
278
+ this.bindTarget(gl, scratch[to], info);
279
+ this.bindSource(gl, blur, 'tDiffuse', scratch[from], 0);
280
+ gl.uniform2fv(blur.uniform('direction'), new Float32Array(direction));
281
+ this.drawQuad(gl, blur);
282
+ }
283
+ this.bindTarget(gl, target, info);
284
+ gl.useProgram(composite.program);
285
+ this.bindSource(gl, composite, 'tDiffuse', source, 0);
286
+ this.bindSource(gl, composite, 'tBloom', scratch[0], 1);
287
+ gl.uniform1f(composite.uniform('strength'), pass.strength);
288
+ this.drawQuad(gl, composite);
289
+ }
290
+ /** The image, unchanged, into `target` — a pass that could not run. */
291
+ copy(gl, source, target, info) {
292
+ const program = this.programFor(gl, COPY_PASS);
293
+ if (!program)
294
+ return;
295
+ this.bindTarget(gl, target, info);
296
+ gl.useProgram(program.program);
297
+ this.bindSource(gl, program, 'tDiffuse', source, 0);
298
+ this.drawQuad(gl, program);
299
+ }
300
+ /** `null` is the window's own framebuffer, the one that gets presented. */
301
+ bindTarget(gl, target, info) {
302
+ gl.bindFramebuffer(gl.FRAMEBUFFER, target ? target.framebuffer : 0);
303
+ gl.viewport(0, 0, target ? target.width : info.width, target ? target.height : info.height);
304
+ }
305
+ bindSource(gl, program, name, target, unit) {
306
+ gl.activeTexture(gl.TEXTURE0 + unit);
307
+ gl.bindTexture(gl.TEXTURE_2D, target.texture);
308
+ gl.uniform1i(program.uniform(name), unit);
309
+ }
310
+ /**
311
+ * The three a post shader almost always wants. They are *set*, not
312
+ * injected — a pass that does not declare one gets no location back and
313
+ * the write is dropped, which is what keeps a shader copied from three.js
314
+ * (where these names are the author's to define) compiling unchanged.
315
+ */
316
+ commonUniforms(gl, program, info) {
317
+ const { width, height } = info;
318
+ gl.uniform2fv(program.uniform('resolution'), new Float32Array([width, height]));
319
+ gl.uniform2fv(program.uniform('texelSize'), new Float32Array([1 / Math.max(1, width), 1 / Math.max(1, height)]));
320
+ const time = now();
321
+ if (this.startedAt === null)
322
+ this.startedAt = time;
323
+ gl.uniform1f(program.uniform('time'), (time - this.startedAt) / 1000);
324
+ }
325
+ /** `<shaderPass uniforms>`, in three.js's `{ name: { value } }` shape. */
326
+ userUniforms(gl, program, pass) {
327
+ const uniforms = pass.uniforms;
328
+ if (!uniforms)
329
+ return;
330
+ for (const [name, entry] of Object.entries(uniforms)) {
331
+ this.owner.setUniform(gl, program.uniform(name), entry.value);
332
+ }
333
+ }
334
+ drawQuad(gl, program) {
335
+ const location = program.attribute('position');
336
+ if (location < 0)
337
+ return;
338
+ gl.bindBuffer(gl.ARRAY_BUFFER, this.quadBuffer(gl));
339
+ gl.enableVertexAttribArray(location);
340
+ gl.vertexAttribPointer(location, 2, gl.FLOAT, false, 0, 0);
341
+ gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
342
+ }
343
+ quadBuffer(gl) {
344
+ if (this.quad)
345
+ return this.quad;
346
+ this.quad = gl.createBuffer();
347
+ gl.bindBuffer(gl.ARRAY_BUFFER, this.quad);
348
+ gl.bufferData(gl.ARRAY_BUFFER, QUAD_VERTICES, gl.STATIC_DRAW);
349
+ return this.quad;
350
+ }
351
+ /**
352
+ * One program per pass configuration. A `<shaderPass>` is keyed by its
353
+ * source, so editing the GLSL recompiles and changing a uniform does not.
354
+ */
355
+ programFor(gl, pass, part = '', override = null) {
356
+ const kind = pass.kind;
357
+ const custom = kind === 'shaderPass';
358
+ const shader = pass;
359
+ const fragmentShader = override ??
360
+ (custom ? shader.fragmentShader : SIMPLE_PASSES[kind]?.fragmentShader) ??
361
+ COPY_SHADER;
362
+ const vertexShader = custom && shader.vertexShader ? shader.vertexShader : QUAD_VERTEX_SHADER;
363
+ const signature = custom
364
+ ? `shaderPass|${vertexShader}|${fragmentShader}`
365
+ : `${kind}|${part}`;
366
+ const cached = this.programs.get(signature);
367
+ if (cached)
368
+ return cached.program ? cached : null;
369
+ const entry = this.owner.compile(gl, { vertex: vertexShader, fragment: `${PRECISION}${fragmentShader}` }, signature, `<${kind}>`);
370
+ this.programs.set(signature, entry);
371
+ return entry.program ? entry : null;
372
+ }
373
+ /**
374
+ * Does this context have framebuffer objects? The direct backend exposes
375
+ * whatever `x11-dri` provides, so "the GL has no FBOs" is a real state.
376
+ * Reported once; the scene then draws to the window uncomposed, which is
377
+ * the same picture without the effects.
378
+ */
379
+ usable(gl) {
380
+ if (this._usable !== undefined)
381
+ return this._usable;
382
+ const missing = FBO_ENTRY_POINTS.filter((name) => typeof gl[name] !== 'function');
383
+ this._usable = missing.length === 0;
384
+ if (!this._usable) {
385
+ this.owner.report('post-unavailable', `<effectComposer>: this GL context is missing ${missing.join(', ')}, ` +
386
+ 'so the scene cannot be rendered to a texture and the passes are ' +
387
+ 'skipped. Check with `npm ls x11-dri`.', 'GL_POST_UNAVAILABLE');
388
+ }
389
+ return this._usable;
390
+ }
391
+ ensureTargets(gl, width, height) {
392
+ if (this.width !== width || this.height !== height)
393
+ this.release(gl);
394
+ if (this.targets[0] && this.targets[1])
395
+ return this.targets;
396
+ this.width = width;
397
+ this.height = height;
398
+ // only the scene's target needs depth: everything after it is a quad
399
+ // drawn with the depth test off
400
+ this.targets[0] ??= this.createTarget(gl, width, height, { depth: true });
401
+ this.targets[1] ??= this.createTarget(gl, width, height);
402
+ if (this.targets[0] && this.targets[1])
403
+ return this.targets;
404
+ this.release(gl);
405
+ return null;
406
+ }
407
+ ensureBloom(gl, width, height) {
408
+ if (this.bloom[0] && this.bloom[1])
409
+ return this.bloom;
410
+ const w = half(width);
411
+ const h = half(height);
412
+ this.bloom[0] ??= this.createTarget(gl, w, h);
413
+ this.bloom[1] ??= this.createTarget(gl, w, h);
414
+ if (this.bloom[0] && this.bloom[1])
415
+ return this.bloom;
416
+ this.releaseTargets(gl, this.bloom);
417
+ return null;
418
+ }
419
+ createTarget(gl, width, height, { depth = false } = {}) {
420
+ const texture = gl.createTexture();
421
+ gl.activeTexture(gl.TEXTURE0);
422
+ gl.bindTexture(gl.TEXTURE_2D, texture);
423
+ // null pixels: the storage is allocated and the contents are whatever
424
+ // the first draw into it writes
425
+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);
426
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
427
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
428
+ // a surface is almost never a power of two, and ES 2 allows an NPOT
429
+ // texture only with CLAMP_TO_EDGE and no mipmaps
430
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
431
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
432
+ const framebuffer = gl.createFramebuffer();
433
+ gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
434
+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);
435
+ let depthBuffer = null;
436
+ if (depth) {
437
+ depthBuffer = gl.createRenderbuffer();
438
+ gl.bindRenderbuffer(gl.RENDERBUFFER, depthBuffer);
439
+ gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_COMPONENT16, width, height);
440
+ gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, depthBuffer);
441
+ }
442
+ const status = gl.checkFramebufferStatus(gl.FRAMEBUFFER);
443
+ gl.bindFramebuffer(gl.FRAMEBUFFER, 0);
444
+ const target = {
445
+ framebuffer,
446
+ texture,
447
+ depth: depthBuffer,
448
+ width,
449
+ height,
450
+ };
451
+ if (status !== gl.FRAMEBUFFER_COMPLETE) {
452
+ this.owner.report('post-target', `<effectComposer>: a ${width}x${height} render target is not ` +
453
+ `complete (status 0x${(status >>> 0).toString(16)}), so the ` +
454
+ 'passes are skipped and the scene draws to the window directly.', 'GL_POST_TARGET_FAILED');
455
+ this.destroyTarget(gl, target);
456
+ return null;
457
+ }
458
+ return target;
459
+ }
460
+ destroyTarget(gl, target) {
461
+ if (!target)
462
+ return;
463
+ gl.deleteFramebuffer(target.framebuffer);
464
+ gl.deleteTexture(target.texture);
465
+ if (target.depth)
466
+ gl.deleteRenderbuffer(target.depth);
467
+ }
468
+ releaseTargets(gl, list) {
469
+ for (let i = 0; i < list.length; i++) {
470
+ this.destroyTarget(gl, list[i]);
471
+ list[i] = null;
472
+ }
473
+ }
474
+ /** Every render target, on a resize or on the way out. */
475
+ release(gl) {
476
+ if (!gl) {
477
+ this.targets = [null, null];
478
+ this.bloom = [null, null];
479
+ return;
480
+ }
481
+ this.releaseTargets(gl, this.targets);
482
+ this.releaseTargets(gl, this.bloom);
483
+ }
484
+ dispose(gl) {
485
+ this.release(gl);
486
+ if (gl) {
487
+ for (const { program } of this.programs.values()) {
488
+ if (program)
489
+ gl.deleteProgram(program);
490
+ }
491
+ if (this.quad)
492
+ gl.deleteBuffer(this.quad);
493
+ }
494
+ this.programs.clear();
495
+ this.quad = null;
496
+ this.passes = null;
497
+ this.width = 0;
498
+ this.height = 0;
499
+ }
500
+ }
501
+ /** The stand-in pass `copy` compiles its program under. */
502
+ const COPY_PASS = { kind: 'copy' };
503
+ //# sourceMappingURL=postprocess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postprocess.js","sourceRoot":"","sources":["../../src/three/postprocess.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { Vec3Tuple } from './math.js';
2
+ import type { Mesh, Object3D } from './objects.js';
3
+ import type { FrameCamera } from './renderer-indirect.js';
4
+ /** The world-space ray through a pixel of the surface. */
5
+ export declare function rayThrough(x: number, y: number, camera: FrameCamera): {
6
+ origin: Vec3Tuple;
7
+ direction: Vec3Tuple;
8
+ } | null;
9
+ export declare const hasPointerHandlers: (object: Object3D) => boolean;
10
+ /** Does anything in this subtree listen for pointer events? */
11
+ export declare function sceneWantsPointer(nodes: Object3D[]): boolean;
12
+ export interface RayHit {
13
+ object: Mesh;
14
+ distance: number;
15
+ point: Vec3Tuple;
16
+ face: number;
17
+ uv: [number, number];
18
+ }
19
+ /**
20
+ * Intersect the scene with the ray through pixel (x, y). World matrices come
21
+ * from the last rendered frame. Nearest first.
22
+ */
23
+ export declare function raycast(roots: Object3D[], x: number, y: number, camera: FrameCamera): RayHit[];
24
+ //# sourceMappingURL=raycast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raycast.d.ts","sourceRoot":"","sources":["../../src/three/raycast.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAQ,SAAS,EAAE,MAAM,WAAW,CAAC;AAOjD,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AA6C1D,0DAA0D;AAC1D,wBAAgB,UAAU,CACxB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,WAAW,GAClB;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,GAAG,IAAI,CAepD;AAED,eAAO,MAAM,kBAAkB,WAAY,QAAQ,KAAG,OACmB,CAAC;AAE1E,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,CAO5D;AA+BD,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,IAAI,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,QAAQ,EAAE,EACjB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,WAAW,GAClB,MAAM,EAAE,CA4CV"}