betsy_bc1.h 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062
  1. /**************************************************************************/
  2. /* betsy_bc1.h */
  3. /**************************************************************************/
  4. /* This file is part of: */
  5. /* GODOT ENGINE */
  6. /* https://godotengine.org */
  7. /**************************************************************************/
  8. /* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
  9. /* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
  10. /* */
  11. /* Permission is hereby granted, free of charge, to any person obtaining */
  12. /* a copy of this software and associated documentation files (the */
  13. /* "Software"), to deal in the Software without restriction, including */
  14. /* without limitation the rights to use, copy, modify, merge, publish, */
  15. /* distribute, sublicense, and/or sell copies of the Software, and to */
  16. /* permit persons to whom the Software is furnished to do so, subject to */
  17. /* the following conditions: */
  18. /* */
  19. /* The above copyright notice and this permission notice shall be */
  20. /* included in all copies or substantial portions of the Software. */
  21. /* */
  22. /* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
  23. /* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
  24. /* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
  25. /* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
  26. /* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
  27. /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
  28. /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
  29. /**************************************************************************/
  30. #ifndef BETSY_BC1_H
  31. #define BETSY_BC1_H
  32. constexpr const float dxt1_encoding_table[1024] = {
  33. 0,
  34. 0,
  35. 0,
  36. 0,
  37. 0,
  38. 1,
  39. 0,
  40. 1,
  41. 1,
  42. 0,
  43. 1,
  44. 0,
  45. 1,
  46. 0,
  47. 1,
  48. 1,
  49. 1,
  50. 1,
  51. 2,
  52. 0,
  53. 2,
  54. 0,
  55. 0,
  56. 4,
  57. 2,
  58. 1,
  59. 2,
  60. 1,
  61. 2,
  62. 1,
  63. 3,
  64. 0,
  65. 3,
  66. 0,
  67. 3,
  68. 0,
  69. 3,
  70. 1,
  71. 1,
  72. 5,
  73. 3,
  74. 2,
  75. 3,
  76. 2,
  77. 4,
  78. 0,
  79. 4,
  80. 0,
  81. 4,
  82. 1,
  83. 4,
  84. 1,
  85. 4,
  86. 2,
  87. 4,
  88. 2,
  89. 4,
  90. 2,
  91. 3,
  92. 5,
  93. 5,
  94. 1,
  95. 5,
  96. 1,
  97. 5,
  98. 2,
  99. 4,
  100. 4,
  101. 5,
  102. 3,
  103. 5,
  104. 3,
  105. 5,
  106. 3,
  107. 6,
  108. 2,
  109. 6,
  110. 2,
  111. 6,
  112. 2,
  113. 6,
  114. 3,
  115. 5,
  116. 5,
  117. 6,
  118. 4,
  119. 6,
  120. 4,
  121. 4,
  122. 8,
  123. 7,
  124. 3,
  125. 7,
  126. 3,
  127. 7,
  128. 3,
  129. 7,
  130. 4,
  131. 7,
  132. 4,
  133. 7,
  134. 4,
  135. 7,
  136. 5,
  137. 5,
  138. 9,
  139. 7,
  140. 6,
  141. 7,
  142. 6,
  143. 8,
  144. 4,
  145. 8,
  146. 4,
  147. 8,
  148. 5,
  149. 8,
  150. 5,
  151. 8,
  152. 6,
  153. 8,
  154. 6,
  155. 8,
  156. 6,
  157. 7,
  158. 9,
  159. 9,
  160. 5,
  161. 9,
  162. 5,
  163. 9,
  164. 6,
  165. 8,
  166. 8,
  167. 9,
  168. 7,
  169. 9,
  170. 7,
  171. 9,
  172. 7,
  173. 10,
  174. 6,
  175. 10,
  176. 6,
  177. 10,
  178. 6,
  179. 10,
  180. 7,
  181. 9,
  182. 9,
  183. 10,
  184. 8,
  185. 10,
  186. 8,
  187. 8,
  188. 12,
  189. 11,
  190. 7,
  191. 11,
  192. 7,
  193. 11,
  194. 7,
  195. 11,
  196. 8,
  197. 11,
  198. 8,
  199. 11,
  200. 8,
  201. 11,
  202. 9,
  203. 9,
  204. 13,
  205. 11,
  206. 10,
  207. 11,
  208. 10,
  209. 12,
  210. 8,
  211. 12,
  212. 8,
  213. 12,
  214. 9,
  215. 12,
  216. 9,
  217. 12,
  218. 10,
  219. 12,
  220. 10,
  221. 12,
  222. 10,
  223. 11,
  224. 13,
  225. 13,
  226. 9,
  227. 13,
  228. 9,
  229. 13,
  230. 10,
  231. 12,
  232. 12,
  233. 13,
  234. 11,
  235. 13,
  236. 11,
  237. 13,
  238. 11,
  239. 14,
  240. 10,
  241. 14,
  242. 10,
  243. 14,
  244. 10,
  245. 14,
  246. 11,
  247. 13,
  248. 13,
  249. 14,
  250. 12,
  251. 14,
  252. 12,
  253. 12,
  254. 16,
  255. 15,
  256. 11,
  257. 15,
  258. 11,
  259. 15,
  260. 11,
  261. 15,
  262. 12,
  263. 15,
  264. 12,
  265. 15,
  266. 12,
  267. 15,
  268. 13,
  269. 13,
  270. 17,
  271. 15,
  272. 14,
  273. 15,
  274. 14,
  275. 16,
  276. 12,
  277. 16,
  278. 12,
  279. 16,
  280. 13,
  281. 16,
  282. 13,
  283. 16,
  284. 14,
  285. 16,
  286. 14,
  287. 16,
  288. 14,
  289. 15,
  290. 17,
  291. 17,
  292. 13,
  293. 17,
  294. 13,
  295. 17,
  296. 14,
  297. 16,
  298. 16,
  299. 17,
  300. 15,
  301. 17,
  302. 15,
  303. 17,
  304. 15,
  305. 18,
  306. 14,
  307. 18,
  308. 14,
  309. 18,
  310. 14,
  311. 18,
  312. 15,
  313. 17,
  314. 17,
  315. 18,
  316. 16,
  317. 18,
  318. 16,
  319. 16,
  320. 20,
  321. 19,
  322. 15,
  323. 19,
  324. 15,
  325. 19,
  326. 15,
  327. 19,
  328. 16,
  329. 19,
  330. 16,
  331. 19,
  332. 16,
  333. 19,
  334. 17,
  335. 17,
  336. 21,
  337. 19,
  338. 18,
  339. 19,
  340. 18,
  341. 20,
  342. 16,
  343. 20,
  344. 16,
  345. 20,
  346. 17,
  347. 20,
  348. 17,
  349. 20,
  350. 18,
  351. 20,
  352. 18,
  353. 20,
  354. 18,
  355. 19,
  356. 21,
  357. 21,
  358. 17,
  359. 21,
  360. 17,
  361. 21,
  362. 18,
  363. 20,
  364. 20,
  365. 21,
  366. 19,
  367. 21,
  368. 19,
  369. 21,
  370. 19,
  371. 22,
  372. 18,
  373. 22,
  374. 18,
  375. 22,
  376. 18,
  377. 22,
  378. 19,
  379. 21,
  380. 21,
  381. 22,
  382. 20,
  383. 22,
  384. 20,
  385. 20,
  386. 24,
  387. 23,
  388. 19,
  389. 23,
  390. 19,
  391. 23,
  392. 19,
  393. 23,
  394. 20,
  395. 23,
  396. 20,
  397. 23,
  398. 20,
  399. 23,
  400. 21,
  401. 21,
  402. 25,
  403. 23,
  404. 22,
  405. 23,
  406. 22,
  407. 24,
  408. 20,
  409. 24,
  410. 20,
  411. 24,
  412. 21,
  413. 24,
  414. 21,
  415. 24,
  416. 22,
  417. 24,
  418. 22,
  419. 24,
  420. 22,
  421. 23,
  422. 25,
  423. 25,
  424. 21,
  425. 25,
  426. 21,
  427. 25,
  428. 22,
  429. 24,
  430. 24,
  431. 25,
  432. 23,
  433. 25,
  434. 23,
  435. 25,
  436. 23,
  437. 26,
  438. 22,
  439. 26,
  440. 22,
  441. 26,
  442. 22,
  443. 26,
  444. 23,
  445. 25,
  446. 25,
  447. 26,
  448. 24,
  449. 26,
  450. 24,
  451. 24,
  452. 28,
  453. 27,
  454. 23,
  455. 27,
  456. 23,
  457. 27,
  458. 23,
  459. 27,
  460. 24,
  461. 27,
  462. 24,
  463. 27,
  464. 24,
  465. 27,
  466. 25,
  467. 25,
  468. 29,
  469. 27,
  470. 26,
  471. 27,
  472. 26,
  473. 28,
  474. 24,
  475. 28,
  476. 24,
  477. 28,
  478. 25,
  479. 28,
  480. 25,
  481. 28,
  482. 26,
  483. 28,
  484. 26,
  485. 28,
  486. 26,
  487. 27,
  488. 29,
  489. 29,
  490. 25,
  491. 29,
  492. 25,
  493. 29,
  494. 26,
  495. 28,
  496. 28,
  497. 29,
  498. 27,
  499. 29,
  500. 27,
  501. 29,
  502. 27,
  503. 30,
  504. 26,
  505. 30,
  506. 26,
  507. 30,
  508. 26,
  509. 30,
  510. 27,
  511. 29,
  512. 29,
  513. 30,
  514. 28,
  515. 30,
  516. 28,
  517. 30,
  518. 28,
  519. 31,
  520. 27,
  521. 31,
  522. 27,
  523. 31,
  524. 27,
  525. 31,
  526. 28,
  527. 31,
  528. 28,
  529. 31,
  530. 28,
  531. 31,
  532. 29,
  533. 31,
  534. 29,
  535. 31,
  536. 30,
  537. 31,
  538. 30,
  539. 31,
  540. 30,
  541. 31,
  542. 31,
  543. 31,
  544. 31,
  545. 0,
  546. 0,
  547. 0,
  548. 1,
  549. 1,
  550. 0,
  551. 1,
  552. 0,
  553. 1,
  554. 1,
  555. 2,
  556. 0,
  557. 2,
  558. 1,
  559. 3,
  560. 0,
  561. 3,
  562. 0,
  563. 3,
  564. 1,
  565. 4,
  566. 0,
  567. 4,
  568. 0,
  569. 4,
  570. 1,
  571. 5,
  572. 0,
  573. 5,
  574. 1,
  575. 6,
  576. 0,
  577. 6,
  578. 0,
  579. 6,
  580. 1,
  581. 7,
  582. 0,
  583. 7,
  584. 0,
  585. 7,
  586. 1,
  587. 8,
  588. 0,
  589. 8,
  590. 1,
  591. 8,
  592. 1,
  593. 8,
  594. 2,
  595. 9,
  596. 1,
  597. 9,
  598. 2,
  599. 9,
  600. 2,
  601. 9,
  602. 3,
  603. 10,
  604. 2,
  605. 10,
  606. 3,
  607. 10,
  608. 3,
  609. 10,
  610. 4,
  611. 11,
  612. 3,
  613. 11,
  614. 4,
  615. 11,
  616. 4,
  617. 11,
  618. 5,
  619. 12,
  620. 4,
  621. 12,
  622. 5,
  623. 12,
  624. 5,
  625. 12,
  626. 6,
  627. 13,
  628. 5,
  629. 13,
  630. 6,
  631. 8,
  632. 16,
  633. 13,
  634. 7,
  635. 14,
  636. 6,
  637. 14,
  638. 7,
  639. 9,
  640. 17,
  641. 14,
  642. 8,
  643. 15,
  644. 7,
  645. 15,
  646. 8,
  647. 11,
  648. 16,
  649. 15,
  650. 9,
  651. 15,
  652. 10,
  653. 16,
  654. 8,
  655. 16,
  656. 9,
  657. 16,
  658. 10,
  659. 15,
  660. 13,
  661. 17,
  662. 9,
  663. 17,
  664. 10,
  665. 17,
  666. 11,
  667. 15,
  668. 16,
  669. 18,
  670. 10,
  671. 18,
  672. 11,
  673. 18,
  674. 12,
  675. 16,
  676. 16,
  677. 19,
  678. 11,
  679. 19,
  680. 12,
  681. 19,
  682. 13,
  683. 17,
  684. 17,
  685. 20,
  686. 12,
  687. 20,
  688. 13,
  689. 20,
  690. 14,
  691. 19,
  692. 16,
  693. 21,
  694. 13,
  695. 21,
  696. 14,
  697. 21,
  698. 15,
  699. 20,
  700. 17,
  701. 22,
  702. 14,
  703. 22,
  704. 15,
  705. 25,
  706. 10,
  707. 22,
  708. 16,
  709. 23,
  710. 15,
  711. 23,
  712. 16,
  713. 26,
  714. 11,
  715. 23,
  716. 17,
  717. 24,
  718. 16,
  719. 24,
  720. 17,
  721. 27,
  722. 12,
  723. 24,
  724. 18,
  725. 25,
  726. 17,
  727. 25,
  728. 18,
  729. 28,
  730. 13,
  731. 25,
  732. 19,
  733. 26,
  734. 18,
  735. 26,
  736. 19,
  737. 29,
  738. 14,
  739. 26,
  740. 20,
  741. 27,
  742. 19,
  743. 27,
  744. 20,
  745. 30,
  746. 15,
  747. 27,
  748. 21,
  749. 28,
  750. 20,
  751. 28,
  752. 21,
  753. 28,
  754. 21,
  755. 28,
  756. 22,
  757. 29,
  758. 21,
  759. 29,
  760. 22,
  761. 24,
  762. 32,
  763. 29,
  764. 23,
  765. 30,
  766. 22,
  767. 30,
  768. 23,
  769. 25,
  770. 33,
  771. 30,
  772. 24,
  773. 31,
  774. 23,
  775. 31,
  776. 24,
  777. 27,
  778. 32,
  779. 31,
  780. 25,
  781. 31,
  782. 26,
  783. 32,
  784. 24,
  785. 32,
  786. 25,
  787. 32,
  788. 26,
  789. 31,
  790. 29,
  791. 33,
  792. 25,
  793. 33,
  794. 26,
  795. 33,
  796. 27,
  797. 31,
  798. 32,
  799. 34,
  800. 26,
  801. 34,
  802. 27,
  803. 34,
  804. 28,
  805. 32,
  806. 32,
  807. 35,
  808. 27,
  809. 35,
  810. 28,
  811. 35,
  812. 29,
  813. 33,
  814. 33,
  815. 36,
  816. 28,
  817. 36,
  818. 29,
  819. 36,
  820. 30,
  821. 35,
  822. 32,
  823. 37,
  824. 29,
  825. 37,
  826. 30,
  827. 37,
  828. 31,
  829. 36,
  830. 33,
  831. 38,
  832. 30,
  833. 38,
  834. 31,
  835. 41,
  836. 26,
  837. 38,
  838. 32,
  839. 39,
  840. 31,
  841. 39,
  842. 32,
  843. 42,
  844. 27,
  845. 39,
  846. 33,
  847. 40,
  848. 32,
  849. 40,
  850. 33,
  851. 43,
  852. 28,
  853. 40,
  854. 34,
  855. 41,
  856. 33,
  857. 41,
  858. 34,
  859. 44,
  860. 29,
  861. 41,
  862. 35,
  863. 42,
  864. 34,
  865. 42,
  866. 35,
  867. 45,
  868. 30,
  869. 42,
  870. 36,
  871. 43,
  872. 35,
  873. 43,
  874. 36,
  875. 46,
  876. 31,
  877. 43,
  878. 37,
  879. 44,
  880. 36,
  881. 44,
  882. 37,
  883. 44,
  884. 37,
  885. 44,
  886. 38,
  887. 45,
  888. 37,
  889. 45,
  890. 38,
  891. 40,
  892. 48,
  893. 45,
  894. 39,
  895. 46,
  896. 38,
  897. 46,
  898. 39,
  899. 41,
  900. 49,
  901. 46,
  902. 40,
  903. 47,
  904. 39,
  905. 47,
  906. 40,
  907. 43,
  908. 48,
  909. 47,
  910. 41,
  911. 47,
  912. 42,
  913. 48,
  914. 40,
  915. 48,
  916. 41,
  917. 48,
  918. 42,
  919. 47,
  920. 45,
  921. 49,
  922. 41,
  923. 49,
  924. 42,
  925. 49,
  926. 43,
  927. 47,
  928. 48,
  929. 50,
  930. 42,
  931. 50,
  932. 43,
  933. 50,
  934. 44,
  935. 48,
  936. 48,
  937. 51,
  938. 43,
  939. 51,
  940. 44,
  941. 51,
  942. 45,
  943. 49,
  944. 49,
  945. 52,
  946. 44,
  947. 52,
  948. 45,
  949. 52,
  950. 46,
  951. 51,
  952. 48,
  953. 53,
  954. 45,
  955. 53,
  956. 46,
  957. 53,
  958. 47,
  959. 52,
  960. 49,
  961. 54,
  962. 46,
  963. 54,
  964. 47,
  965. 57,
  966. 42,
  967. 54,
  968. 48,
  969. 55,
  970. 47,
  971. 55,
  972. 48,
  973. 58,
  974. 43,
  975. 55,
  976. 49,
  977. 56,
  978. 48,
  979. 56,
  980. 49,
  981. 59,
  982. 44,
  983. 56,
  984. 50,
  985. 57,
  986. 49,
  987. 57,
  988. 50,
  989. 60,
  990. 45,
  991. 57,
  992. 51,
  993. 58,
  994. 50,
  995. 58,
  996. 51,
  997. 61,
  998. 46,
  999. 58,
  1000. 52,
  1001. 59,
  1002. 51,
  1003. 59,
  1004. 52,
  1005. 62,
  1006. 47,
  1007. 59,
  1008. 53,
  1009. 60,
  1010. 52,
  1011. 60,
  1012. 53,
  1013. 60,
  1014. 53,
  1015. 60,
  1016. 54,
  1017. 61,
  1018. 53,
  1019. 61,
  1020. 54,
  1021. 61,
  1022. 54,
  1023. 61,
  1024. 55,
  1025. 62,
  1026. 54,
  1027. 62,
  1028. 55,
  1029. 62,
  1030. 55,
  1031. 62,
  1032. 56,
  1033. 63,
  1034. 55,
  1035. 63,
  1036. 56,
  1037. 63,
  1038. 56,
  1039. 63,
  1040. 57,
  1041. 63,
  1042. 58,
  1043. 63,
  1044. 59,
  1045. 63,
  1046. 59,
  1047. 63,
  1048. 60,
  1049. 63,
  1050. 61,
  1051. 63,
  1052. 62,
  1053. 63,
  1054. 62,
  1055. 63,
  1056. 63,
  1057. };
  1058. #endif // BETSY_BC1_H