991:
146:
557:
The community of
Allegro users have contributed several library extensions to handle things like scrolling tile maps and import and export of various file formats. Also some parts of what used to be part of Allegro, is now separated as an addon in Allegro 5. These addons are distributed with the core
937:
Although the project does see continued support to this day with the
Allegro 5 branch, for much of its history Allegro was very much associated with the MS-DOS freeware scene that was still going strong well into the early
397:
port of
Allegro, XwinAllegro, was created. These various ports were brought together during the Allegro 3.9 WIP versions, with Allegro 4.0 being the first stable version of Allegro to support multiple platforms.
422:
rendering backends where appropriate. Many of the addons that existed as separate projects for
Allegro 4 now interface seamlessly with Allegro proper and are bundled with the default installation. Allegro 5 is
38:
406:
Current development is focused on the
Allegro 5 branch, a complete redesign of both the API and much of the library's internal operation. Effort was made to make the API more consistent and
389:
compiler, all games which used
Allegro therefore used DOS, attracting the enthusiast scene for that legacy system. Around 1998, Allegro branched out into several versions. A port to
2013:
1033:
1958:
1953:
374:
in the early 1990s. When
Hargreaves realized the platform was dying, he abandoned the Atari version, and reimplemented his work for the
921:
253:
development. The functionality of the library includes support for basic 2D graphics, image manipulation, text output, audio output,
1998:
1993:
1092:
407:
1968:
1068:
385:
in 1995. Support for
Borland C++ was dropped in version 2.0, and DJGPP was the only supported compiler. As DJGPP was an
728:
862:
833:
808:
325:
1963:
1026:
195:
1080:
17:
1801:
1751:
1598:
1364:
344:
290:
282:
1897:
1203:
1097:
265:
strings, file system access, file manipulation, data files, and 3D graphics. The library is written in the
125:
1973:
1948:
1063:
1019:
99:
175:
674:
317:
286:
183:
1988:
298:
2003:
1528:
723:
424:
329:
294:
266:
207:
159:
889:
1468:
1314:
1127:
465:- abstraction over both real file system and file system inside some data file (e.g. ZIP archive)
1543:
1075:
2008:
1786:
1631:
411:
1756:
1907:
1821:
1781:
1508:
1478:
1432:
1427:
1392:
1344:
1289:
1112:
1087:
1046:
908:
690:
258:
257:
music, input and timers, as well as additional routines for fixed-point and floating-point
8:
1983:
1978:
1852:
1701:
1636:
1533:
1407:
1397:
1384:
1304:
1198:
753:
655:
602:
472:
365:
145:
58:
990:
951:
1706:
1374:
1243:
1188:
622:
965:
1831:
1453:
1294:
1248:
858:
829:
804:
499:
483:
390:
305:
301:, and other languages. Allegro comes with extensive documentation and many examples.
37:
1558:
1523:
1334:
468:
450:
360:
278:
246:
214:
166:
53:
455:
File I/O - abstraction over both real files and files inside some data file (e.g.
1872:
1816:
1766:
1741:
1672:
1584:
1563:
1518:
1473:
1417:
1412:
1359:
1233:
1228:
661:
618:
586:
1923:
1422:
1299:
630:
487:
1942:
1826:
1811:
1776:
1746:
1641:
1284:
1274:
1264:
1223:
1158:
854:
695:
375:
1664:
1369:
1349:
1178:
718:
340:
220:
1721:
1646:
1354:
1238:
1208:
1168:
1058:
1042:
608:
274:
518:
State - you can store and later restore the state of
Allegro application
1887:
1654:
1493:
1329:
1213:
462:
333:
250:
204:
200:
134:
67:
48:
1011:
1001:
1796:
1736:
1731:
1680:
1615:
1579:
1538:
1503:
1498:
1448:
1339:
1324:
1279:
1269:
1218:
1173:
1163:
1132:
313:
877:
1726:
1659:
1553:
1463:
1458:
1379:
1319:
1193:
1137:
779:
456:
440:
382:
371:
646:
Memfile addon - treat a fixed block of contiguous memory as a file
1902:
1862:
1857:
1847:
1806:
1771:
1711:
1548:
1513:
1402:
1309:
1183:
1102:
1006:
685:
680:
419:
262:
171:
922:"Building a Retro Linux Gaming Computer Part 41: The Worm Turns"
1892:
1877:
1867:
1791:
1696:
1483:
894:
733:
713:
705:
700:
513:
415:
386:
328:(APIs) into one portable interface. It can run also on top of
1488:
1142:
582:
574:
566:
539:
536:
Transformations – transformation of coordinates for 2D and 3D
379:
309:
270:
179:
480:
Graphics routines - colors, pixel formats, bitmaps, clipping
1761:
1716:
634:
594:
590:
578:
570:
394:
332:
which is used to run
Allegro programs in web browser using
254:
1882:
996:
638:
626:
598:
321:
187:
393:, WinAllegro, was created, and also during this time, a
984:
435:
Allegro 5 supports following features in its Core API:
231:
777:
471:- might be useful for embedded processors without
1940:
652:PhysicsFS addon - using archive as a file system
1027:
801:Game Programming All in One, Second Edition
27:Software library for video game development
1034:
1020:
989:
144:
2014:Video game development software for Linux
658:addon - drawing primitives (e.g. circle)
510:Path structures - file path manipulation
1041:
823:
798:
14:
1941:
919:
848:
1015:
410:safe. By default, the library is now
1608:
359:, Allegro was originally created by
24:
1959:C (programming language) libraries
1954:Application programming interfaces
326:application programming interfaces
105:5.2.9.1 / January 19, 2024
25:
2025:
976:
909:Forum posting by Shawn Hargreaves
878:List of Allegro language bindings
339:Released under the terms of the
269:and designed to be used with C,
36:
1999:Video game development software
1994:Software using the zlib license
958:
944:
446:Displays - working with Windows
913:
902:
882:
871:
842:
817:
792:
771:
746:
490:and vibration on input devices
13:
1:
1969:Free software programmed in C
1752:Lightweight Java Game Library
920:Wilson, Hamish (2024-04-09).
739:
357:Atari Low-Level Game Routines
345:free and open source software
1098:List of visual novel engines
966:"Allegro 5 Reference Manual"
952:"Allegro 5 Reference Manual"
401:
7:
1064:First-person shooter engine
1007:Shawn Hargreaves's Homepage
758:5.2.9.1 Github Release Page
668:
430:
82:; 34 years ago
10:
2030:
799:Harbour, Jonathan (2004).
778:Allegro Development Team.
675:Borland Graphics Interface
350:
1916:
1840:
1689:
1624:
1597:
1572:
1441:
1257:
1151:
1120:
1111:
1054:
824:Steinke, Lennart (2003).
803:. Course Technology PTR.
552:
226:
213:
194:
165:
155:
124:
120:
98:
94:
76:
66:
47:
35:
330:Simple DirectMedia Layer
1964:Cross-platform software
355:Initially standing for
1076:Game engine recreation
849:Deitel, P. J. (2006).
780:"The giftware license"
439:Configuration files –
267:C programming language
107:; 8 months ago
1787:Platinum Arts Sandbox
1632:Adventure Game Studio
890:"Welcome to Allegro!"
1433:Visual3D Game Engine
1088:Game creation system
898:. 23 September 2022.
691:List of game engines
649:Native dialogs addon
545:Direct3D integration
443:format file handling
412:hardware-accelerated
324:, abstracting their
190:, web browser et al.
1702:Blender Game Engine
1534:Pixel Game Maker MV
1002:Games Using Allegro
826:Spielprogrammierung
32:
1974:Graphics libraries
1949:AmigaOS 4 software
1707:Bork3D Game Engine
853:. How to Program.
617:Image I/O addon -
548:OpenGL integration
72:Allegro developers
49:Original author(s)
30:
1936:
1935:
1932:
1931:
1832:Wintermute Engine
1593:
1592:
1454:Amazon Lumberyard
1249:Zillions of Games
754:"5.2.9.1 Release"
500:Memory management
496:Keyboard routines
493:Joystick routines
314:Unix-like systems
304:Allegro supports
240:
239:
16:(Redirected from
2021:
1989:MorphOS software
1606:
1605:
1559:UbiArt Framework
1524:Nvidia GameWorks
1118:
1117:
1036:
1029:
1022:
1013:
1012:
993:
988:
987:
985:Official website
970:
969:
962:
956:
955:
948:
942:
941:
933:
932:
917:
911:
906:
900:
899:
886:
880:
875:
869:
868:
851:C How to Program
846:
840:
839:
821:
815:
814:
796:
790:
789:
787:
786:
775:
769:
768:
766:
764:
750:
477:Fullscreen modes
469:Fixed-point math
451:event management
369:
361:Shawn Hargreaves
247:software library
236:
233:
167:Operating system
148:
143:
140:
138:
136:
115:
113:
108:
90:
88:
83:
62:
54:Shawn Hargreaves
40:
33:
29:
21:
2029:
2028:
2024:
2023:
2022:
2020:
2019:
2018:
2004:Widget toolkits
1939:
1938:
1937:
1928:
1912:
1836:
1817:Thousand Parsec
1767:Open Wonderland
1742:Irrlicht Engine
1685:
1620:
1600:
1589:
1585:Unreal Engine 5
1568:
1564:Unreal Engine 4
1519:Luminous Engine
1474:Creation Engine
1437:
1418:Unreal Engine 3
1413:Unreal Engine 2
1253:
1234:Virtual Theatre
1229:Unreal Engine 1
1147:
1107:
1050:
1040:
983:
982:
979:
974:
973:
964:
963:
959:
950:
949:
945:
930:
928:
918:
914:
907:
903:
888:
887:
883:
876:
872:
865:
847:
843:
836:
822:
818:
811:
797:
793:
784:
782:
776:
772:
762:
760:
752:
751:
747:
742:
671:
662:Video streaming
555:
542:string routines
521:System routines
433:
404:
363:
353:
230:
151:
133:
116:
111:
109:
106:
86:
84:
81:
77:Initial release
56:
43:
28:
23:
22:
18:Allegro library
15:
12:
11:
5:
2027:
2017:
2016:
2011:
2006:
2001:
1996:
1991:
1986:
1981:
1976:
1971:
1966:
1961:
1956:
1951:
1934:
1933:
1930:
1929:
1927:
1926:
1924:Open 3D Engine
1920:
1918:
1914:
1913:
1911:
1910:
1905:
1900:
1895:
1890:
1885:
1880:
1875:
1870:
1865:
1860:
1855:
1850:
1844:
1842:
1838:
1837:
1835:
1834:
1829:
1824:
1819:
1814:
1809:
1804:
1799:
1794:
1789:
1784:
1779:
1774:
1769:
1764:
1759:
1754:
1749:
1744:
1739:
1734:
1729:
1724:
1719:
1714:
1709:
1704:
1699:
1693:
1691:
1687:
1686:
1684:
1683:
1678:
1670:
1662:
1657:
1652:
1644:
1639:
1634:
1628:
1626:
1622:
1621:
1619:
1618:
1612:
1610:
1603:
1595:
1594:
1591:
1590:
1588:
1587:
1582:
1576:
1574:
1570:
1569:
1567:
1566:
1561:
1556:
1551:
1546:
1541:
1536:
1531:
1526:
1521:
1516:
1511:
1506:
1501:
1496:
1491:
1486:
1481:
1476:
1471:
1466:
1461:
1456:
1451:
1445:
1443:
1439:
1438:
1436:
1435:
1430:
1425:
1423:Vicious Engine
1420:
1415:
1410:
1405:
1400:
1395:
1390:
1382:
1377:
1372:
1367:
1362:
1357:
1352:
1347:
1342:
1337:
1332:
1327:
1322:
1317:
1312:
1307:
1302:
1300:Essence Engine
1297:
1292:
1287:
1282:
1277:
1272:
1267:
1261:
1259:
1255:
1254:
1252:
1251:
1246:
1241:
1236:
1231:
1226:
1221:
1216:
1211:
1206:
1204:Pie in the Sky
1201:
1196:
1191:
1186:
1181:
1176:
1171:
1166:
1161:
1155:
1153:
1149:
1148:
1146:
1145:
1140:
1135:
1130:
1124:
1122:
1115:
1109:
1108:
1106:
1105:
1100:
1095:
1090:
1085:
1084:
1083:
1073:
1072:
1071:
1061:
1055:
1052:
1051:
1039:
1038:
1031:
1024:
1016:
1010:
1009:
1004:
999:
994:
978:
977:External links
975:
972:
971:
957:
943:
912:
901:
881:
870:
863:
841:
834:
828:. BHV Verlag.
816:
809:
791:
770:
744:
743:
741:
738:
737:
736:
731:
726:
721:
716:
711:
708:
703:
698:
693:
688:
683:
678:
670:
667:
666:
665:
659:
653:
650:
647:
644:
641:
615:
612:
607:Color addon -
605:
563:
554:
551:
550:
549:
546:
543:
537:
534:
531:
528:
525:
522:
519:
516:
511:
508:
507:Mouse routines
505:
502:
497:
494:
491:
488:force feedback
481:
478:
475:
466:
460:
453:
447:
444:
432:
429:
403:
400:
352:
349:
281:available for
238:
237:
228:
224:
223:
217:
211:
210:
198:
192:
191:
169:
163:
162:
157:
153:
152:
150:
149:
130:
128:
122:
121:
118:
117:
104:
102:
100:Stable release
96:
95:
92:
91:
78:
74:
73:
70:
64:
63:
51:
45:
44:
41:
26:
9:
6:
4:
3:
2:
2026:
2015:
2012:
2010:
2007:
2005:
2002:
2000:
1997:
1995:
1992:
1990:
1987:
1985:
1982:
1980:
1977:
1975:
1972:
1970:
1967:
1965:
1962:
1960:
1957:
1955:
1952:
1950:
1947:
1946:
1944:
1925:
1922:
1921:
1919:
1915:
1909:
1906:
1904:
1901:
1899:
1896:
1894:
1891:
1889:
1886:
1884:
1881:
1879:
1876:
1874:
1871:
1869:
1866:
1864:
1861:
1859:
1856:
1854:
1851:
1849:
1846:
1845:
1843:
1839:
1833:
1830:
1828:
1827:Vassal Engine
1825:
1823:
1820:
1818:
1815:
1813:
1812:Spring Engine
1810:
1808:
1805:
1803:
1800:
1798:
1795:
1793:
1790:
1788:
1785:
1783:
1780:
1778:
1777:Papervision3D
1775:
1773:
1770:
1768:
1765:
1763:
1760:
1758:
1755:
1753:
1750:
1748:
1747:jMonkeyEngine
1745:
1743:
1740:
1738:
1735:
1733:
1730:
1728:
1725:
1723:
1720:
1718:
1715:
1713:
1710:
1708:
1705:
1703:
1700:
1698:
1695:
1694:
1692:
1688:
1682:
1679:
1677:
1675:
1671:
1669:
1667:
1663:
1661:
1658:
1656:
1653:
1651:
1649:
1645:
1643:
1642:Crystal Space
1640:
1638:
1635:
1633:
1630:
1629:
1627:
1623:
1617:
1614:
1613:
1611:
1607:
1604:
1602:
1596:
1586:
1583:
1581:
1578:
1577:
1575:
1571:
1565:
1562:
1560:
1557:
1555:
1552:
1550:
1547:
1545:
1542:
1540:
1537:
1535:
1532:
1530:
1527:
1525:
1522:
1520:
1517:
1515:
1512:
1510:
1507:
1505:
1502:
1500:
1497:
1495:
1492:
1490:
1487:
1485:
1482:
1480:
1477:
1475:
1472:
1470:
1467:
1465:
1462:
1460:
1457:
1455:
1452:
1450:
1447:
1446:
1444:
1440:
1434:
1431:
1429:
1426:
1424:
1421:
1419:
1416:
1414:
1411:
1409:
1406:
1404:
1401:
1399:
1396:
1394:
1391:
1389:
1387:
1383:
1381:
1378:
1376:
1373:
1371:
1368:
1366:
1363:
1361:
1358:
1356:
1353:
1351:
1348:
1346:
1343:
1341:
1338:
1336:
1333:
1331:
1328:
1326:
1323:
1321:
1318:
1316:
1313:
1311:
1308:
1306:
1303:
1301:
1298:
1296:
1293:
1291:
1288:
1286:
1285:Crystal Tools
1283:
1281:
1278:
1276:
1275:Chrome Engine
1273:
1271:
1268:
1266:
1263:
1262:
1260:
1256:
1250:
1247:
1245:
1242:
1240:
1237:
1235:
1232:
1230:
1227:
1225:
1224:Sim RPG Maker
1222:
1220:
1217:
1215:
1212:
1210:
1207:
1205:
1202:
1200:
1197:
1195:
1192:
1190:
1187:
1185:
1182:
1180:
1177:
1175:
1172:
1170:
1167:
1165:
1162:
1160:
1159:3D GameStudio
1157:
1156:
1154:
1150:
1144:
1141:
1139:
1136:
1134:
1131:
1129:
1126:
1125:
1123:
1119:
1116:
1114:
1110:
1104:
1101:
1099:
1096:
1094:
1091:
1089:
1086:
1082:
1079:
1078:
1077:
1074:
1070:
1067:
1066:
1065:
1062:
1060:
1057:
1056:
1053:
1048:
1044:
1037:
1032:
1030:
1025:
1023:
1018:
1017:
1014:
1008:
1005:
1003:
1000:
998:
995:
992:
986:
981:
980:
967:
961:
953:
947:
940:
939:
927:
926:GamingOnLinux
923:
916:
910:
905:
897:
896:
891:
885:
879:
874:
866:
864:0-13-240416-8
860:
856:
855:Prentice Hall
852:
845:
837:
835:3-8266-8075-8
831:
827:
820:
812:
810:1-59200-383-4
806:
802:
795:
781:
774:
759:
755:
749:
745:
735:
732:
730:
727:
725:
722:
720:
717:
715:
712:
709:
707:
704:
702:
699:
697:
696:Microsoft XNA
694:
692:
689:
687:
684:
682:
679:
676:
673:
672:
663:
660:
657:
654:
651:
648:
645:
642:
640:
636:
632:
628:
624:
620:
616:
613:
610:
606:
604:
600:
596:
592:
588:
584:
580:
576:
572:
568:
564:
561:
560:
559:
547:
544:
541:
538:
535:
532:
529:
526:
523:
520:
517:
515:
512:
509:
506:
503:
501:
498:
495:
492:
489:
485:
482:
479:
476:
474:
470:
467:
464:
461:
458:
454:
452:
448:
445:
442:
438:
437:
436:
428:
426:
421:
417:
413:
409:
399:
396:
392:
388:
384:
381:
377:
373:
367:
362:
358:
348:
346:
343:, Allegro is
342:
337:
335:
331:
327:
323:
319:
315:
311:
307:
302:
300:
296:
292:
288:
284:
280:
276:
272:
268:
264:
260:
256:
252:
248:
244:
235:
229:
225:
222:
218:
216:
212:
209:
206:
202:
199:
197:
193:
189:
185:
181:
177:
173:
170:
168:
164:
161:
158:
154:
147:
142:
132:
131:
129:
127:
123:
119:
103:
101:
97:
93:
79:
75:
71:
69:
65:
60:
55:
52:
50:
46:
39:
34:
19:
2009:Windows APIs
1673:
1665:
1647:
1386:Silent Storm
1385:
1370:Retro Engine
1350:MT Framework
1179:Genie Engine
1043:Game engines
997:Allegro Wiki
960:
946:
936:
935:
929:. Retrieved
925:
915:
904:
893:
884:
873:
850:
844:
825:
819:
800:
794:
783:. Retrieved
773:
761:. Retrieved
757:
748:
719:SciTech SNAP
556:
434:
425:event driven
408:multi-thread
405:
356:
354:
341:zlib license
338:
303:
261:arithmetic,
242:
241:
68:Developer(s)
42:Allegro logo
1722:Game Editor
1601:open-source
1355:PhyreEngine
1239:Voxel Space
1209:Reality Lab
1169:Dark Engine
1113:Proprietary
1059:Source port
954:. Core API.
614:Font addons
609:color space
562:Audio addon
533:Touch input
486:routines -
376:Borland C++
364: [
275:Objective-C
219:Allegro 5:
57: [
1984:MacOS APIs
1979:Linux APIs
1943:Categories
1888:PlayCanvas
1655:Game-Maker
1529:Panta Rhei
1494:Fox Engine
1330:HeroEngine
1214:RenderWare
931:2024-04-13
785:2013-11-16
763:24 January
740:References
656:Primitives
643:Main addon
611:conversion
463:Filesystem
459:* archive)
334:Emscripten
251:video game
201:Multimedia
156:Written in
126:Repository
112:2024-01-19
80:early 1990
1737:id Tech 4
1732:id Tech 3
1681:Stratagus
1616:Z-machine
1580:id Tech 7
1539:RE Engine
1504:id Tech 6
1499:id Tech 5
1469:Construct
1449:4A Engine
1345:Marmalade
1340:Leadwerks
1325:GameSalad
1315:Frostbite
1280:CryEngine
1270:C4 Engine
1219:RPG Maker
1174:GameMaker
1164:Clickteam
1133:Freescape
1128:Filmation
968:. Addons.
558:library:
449:Events -
402:Allegro 5
383:compilers
141:/allegro5
139:/liballeg
1727:GDevelop
1674:Quake II
1660:OHRRPGCE
1599:Free and
1554:Source 2
1544:Snowdrop
1464:Buildbox
1459:Bitsquid
1380:Shark 3D
1320:Gamebryo
1305:Euphoria
1194:LithTech
1138:Gold Box
1093:Game IDE
669:See also
504:Monitors
431:Features
372:Atari ST
370:for the
279:bindings
232:liballeg
1903:Stencyl
1863:Horde3D
1858:GPUOpen
1848:Delta3D
1807:Solar2D
1802:Scratch
1772:Panda3D
1712:Cocos2d
1549:Stencyl
1514:Kynapse
1403:Unigine
1310:Flare3D
1184:GoldSrc
1103:id Tech
686:DirectX
681:ClanLib
524:Threads
420:DirectX
391:Windows
351:History
318:Android
306:Windows
277:, with
263:Unicode
243:Allegro
227:Website
215:License
184:Android
172:Windows
110: (
85: (
31:Allegro
1908:Stride
1893:Raylib
1878:OpenFL
1868:libGDX
1822:Torque
1797:Ren'Py
1792:Pygame
1782:Plasma
1697:Away3D
1676:engine
1668:engine
1650:engine
1509:Ignite
1484:Defold
1479:Decima
1428:Vision
1393:Source
1388:engine
1290:Diesel
938:2000s.
895:GitHub
861:
832:
807:
734:UniVBE
714:Raylib
710:OpenML
706:OpenGL
701:OpenAL
567:codecs
565:Audio
553:Addons
514:Shader
484:Haptic
416:OpenGL
414:using
387:MS-DOS
320:, and
291:Scheme
283:Python
259:matrix
135:github
1917:2020s
1898:Snap!
1853:Godot
1841:2010s
1690:2000s
1666:Quake
1637:Build
1625:1990s
1609:1970s
1573:2020s
1489:Felgo
1442:2010s
1408:Unity
1398:Titan
1265:Anvil
1258:2000s
1199:Mugen
1152:1990s
1143:SCUMM
1121:1980s
677:(BGI)
664:addon
583:.opus
575:.flac
540:UTF-8
530:Timer
380:DJGPP
368:]
310:macOS
273:, or
245:is a
205:Games
180:macOS
176:Linux
61:]
1873:Moai
1762:OGRE
1757:Löve
1717:Dim3
1648:Doom
1375:SAGE
1365:RAGE
1244:Zero
1189:Jedi
1081:list
1069:list
1047:list
859:ISBN
830:ISBN
805:ISBN
765:2024
729:SFML
635:JPEG
603:.voc
595:.s3m
591:.mod
579:.ogg
571:.wav
527:Time
395:Unix
378:and
255:MIDI
249:for
234:.org
221:zlib
203:and
196:Type
137:.com
87:1990
1883:ORX
1295:Ego
724:SDL
639:PNG
631:TGA
627:PCX
623:DDS
619:BMP
599:.xm
587:.it
473:FPU
457:ZIP
441:INI
418:or
322:iOS
287:Lua
271:C++
208:SDK
188:iOS
1945::
1335:IW
934:.
924:.
892:.
857:.
756:.
637:,
633:,
629:,
625:,
621:,
601:,
597:,
593:,
589:,
585:,
581:,
577:,
573:,
569:-
427:.
366:pl
347:.
336:.
316:,
312:,
308:,
299:Go
297:,
293:,
289:,
285:,
186:,
182:,
178:,
174:,
59:pl
1360:Q
1049:)
1045:(
1035:e
1028:t
1021:v
867:.
838:.
813:.
788:.
767:.
295:D
160:C
114:)
89:)
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.