The JUCE cross-platform C++ framework, with DISTRHO/KXStudio specific changes
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

621 lines
29KB

  1. /*
  2. ==============================================================================
  3. This file is part of the JUCE library.
  4. Copyright (c) 2022 - Raw Material Software Limited
  5. JUCE is an open source library subject to commercial or open-source
  6. licensing.
  7. By using JUCE, you agree to the terms of both the JUCE 7 End-User License
  8. Agreement and JUCE Privacy Policy.
  9. End User License Agreement: www.juce.com/juce-7-licence
  10. Privacy Policy: www.juce.com/juce-privacy-policy
  11. Or: You may also use this code under the terms of the GPL v3 (see
  12. www.gnu.org/licenses).
  13. JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
  14. EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
  15. DISCLAIMED.
  16. ==============================================================================
  17. */
  18. namespace juce
  19. {
  20. //==============================================================================
  21. namespace ReturnHelpers
  22. {
  23. template <typename Type>
  24. Type returnDefaultConstructedAnyType() { return {}; }
  25. template <>
  26. inline void returnDefaultConstructedAnyType<void>() {}
  27. }
  28. #define JUCE_GENERATE_FUNCTION_WITH_DEFAULT(functionName, objectName, args, returnType) \
  29. using functionName = returnType (*) args; \
  30. functionName objectName = [] args -> returnType { return ReturnHelpers::returnDefaultConstructedAnyType<returnType>(); };
  31. //==============================================================================
  32. class JUCE_API X11Symbols
  33. {
  34. public:
  35. //==============================================================================
  36. bool loadAllSymbols();
  37. //==============================================================================
  38. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XAllocClassHint, xAllocClassHint,
  39. (),
  40. XClassHint*)
  41. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XAllocSizeHints, xAllocSizeHints,
  42. (),
  43. XSizeHints*)
  44. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XAllocWMHints, xAllocWMHints,
  45. (),
  46. XWMHints*)
  47. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XBitmapBitOrder, xBitmapBitOrder,
  48. (::Display*),
  49. int)
  50. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XBitmapUnit, xBitmapUnit,
  51. (::Display*),
  52. int)
  53. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XChangeActivePointerGrab, xChangeActivePointerGrab,
  54. (::Display*, unsigned int, Cursor, ::Time),
  55. void)
  56. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XChangeProperty, xChangeProperty,
  57. (::Display*, ::Window, Atom, Atom, int, int, const unsigned char*, int),
  58. void)
  59. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XCheckTypedWindowEvent, xCheckTypedWindowEvent,
  60. (::Display*, ::Window, int, XEvent*),
  61. Bool)
  62. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XCheckWindowEvent, xCheckWindowEvent,
  63. (::Display*, ::Window, long, XEvent*),
  64. Bool)
  65. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XClearArea, xClearArea,
  66. (::Display*, ::Window, int, int, unsigned int, unsigned int, Bool),
  67. void)
  68. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XCloseDisplay, xCloseDisplay,
  69. (::Display*),
  70. int)
  71. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XConnectionNumber, xConnectionNumber,
  72. (::Display*),
  73. int)
  74. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XConvertSelection, xConvertSelection,
  75. (::Display*, Atom, Atom, Atom, ::Window, ::Time),
  76. void)
  77. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XCreateColormap, xCreateColormap,
  78. (::Display*, ::Window, Visual*, int),
  79. Colormap)
  80. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XCreateFontCursor, xCreateFontCursor,
  81. (::Display*, unsigned int),
  82. Cursor)
  83. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XCreateGC, xCreateGC,
  84. (::Display*, ::Drawable, unsigned long, XGCValues*),
  85. GC)
  86. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XCreateImage, xCreateImage,
  87. (::Display*, Visual*, unsigned int, int, int, const char*, unsigned int, unsigned int, int, int),
  88. XImage*)
  89. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XCreatePixmap, xCreatePixmap,
  90. (::Display*, ::Drawable, unsigned int, unsigned int, unsigned int),
  91. Pixmap)
  92. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XCreatePixmapCursor, xCreatePixmapCursor,
  93. (::Display*, Pixmap, Pixmap, XColor*, XColor*, unsigned int, unsigned int),
  94. Cursor)
  95. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XCreatePixmapFromBitmapData, xCreatePixmapFromBitmapData,
  96. (::Display*, ::Drawable, const char*, unsigned int, unsigned int, unsigned long, unsigned long, unsigned int),
  97. Pixmap)
  98. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XCreateWindow, xCreateWindow,
  99. (::Display*, ::Window, int, int, unsigned int, unsigned int, unsigned int, int, unsigned int, Visual*, unsigned long, XSetWindowAttributes*),
  100. ::Window)
  101. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XDefaultRootWindow, xDefaultRootWindow,
  102. (::Display*),
  103. ::Window)
  104. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XDefaultScreen, xDefaultScreen,
  105. (::Display*),
  106. int)
  107. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XDefaultScreenOfDisplay, xDefaultScreenOfDisplay,
  108. (::Display*),
  109. Screen*)
  110. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XDefaultVisual, xDefaultVisual,
  111. (::Display*, int),
  112. Visual*)
  113. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XDefineCursor, xDefineCursor,
  114. (::Display*, ::Window, Cursor),
  115. int)
  116. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XDeleteContext, xDeleteContext,
  117. (::Display*, XID, XContext),
  118. int)
  119. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XDeleteProperty, xDeleteProperty,
  120. (::Display*, Window, Atom),
  121. void)
  122. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XDestroyImage, xDestroyImage,
  123. (XImage*),
  124. void)
  125. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XDestroyWindow, xDestroyWindow,
  126. (::Display*, ::Window),
  127. void)
  128. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XDisplayHeight, xDisplayHeight,
  129. (::Display*, int),
  130. int)
  131. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XDisplayHeightMM, xDisplayHeightMM,
  132. (::Display*, int),
  133. int)
  134. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XDisplayWidth, xDisplayWidth,
  135. (::Display*, int),
  136. int)
  137. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XDisplayWidthMM, xDisplayWidthMM,
  138. (::Display*, int),
  139. int)
  140. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XEventsQueued, xEventsQueued,
  141. (::Display*, int),
  142. int)
  143. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XFindContext, xFindContext,
  144. (::Display*, XID, XContext, XPointer*),
  145. int)
  146. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XFlush, xFlush,
  147. (::Display*),
  148. int)
  149. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XFree, xFree,
  150. (void*),
  151. void)
  152. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XFreeCursor, xFreeCursor,
  153. (::Display*, Cursor),
  154. void)
  155. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XFreeColormap ,xFreeColormap,
  156. (::Display*, Colormap),
  157. void)
  158. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XFreeGC, xFreeGC,
  159. (::Display*, GC),
  160. void)
  161. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XFreeModifiermap, xFreeModifiermap,
  162. (XModifierKeymap*),
  163. void)
  164. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XFreePixmap, xFreePixmap,
  165. (::Display*, Pixmap),
  166. void)
  167. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGetAtomName, xGetAtomName,
  168. (::Display*, Atom),
  169. char*)
  170. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGetErrorDatabaseText, xGetErrorDatabaseText,
  171. (::Display*, const char*, const char*, const char*, const char*, int),
  172. void)
  173. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGetErrorText, xGetErrorText,
  174. (::Display*, int, const char*, int),
  175. void)
  176. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGetGeometry, xGetGeometry,
  177. (::Display*, ::Drawable, ::Window*, int*, int*, unsigned int*, unsigned int*, unsigned int*, unsigned int*),
  178. Status)
  179. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGetImage, xGetImage,
  180. (::Display*, ::Drawable, int, int, unsigned int, unsigned int, unsigned long, int),
  181. XImage*)
  182. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGetInputFocus, xGetInputFocus,
  183. (::Display*, ::Window*, int*),
  184. void)
  185. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGetModifierMapping, xGetModifierMapping,
  186. (::Display*),
  187. XModifierKeymap*)
  188. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGetPointerMapping, xGetPointerMapping,
  189. (::Display*, unsigned char[], int),
  190. int)
  191. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGetSelectionOwner, xGetSelectionOwner,
  192. (::Display*, Atom),
  193. ::Window)
  194. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGetVisualInfo, xGetVisualInfo,
  195. (::Display*, long, XVisualInfo*, int*),
  196. XVisualInfo*)
  197. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGetWMHints, xGetWMHints,
  198. (::Display*, ::Window),
  199. XWMHints*)
  200. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGetWindowAttributes, xGetWindowAttributes,
  201. (::Display*, ::Window, XWindowAttributes*),
  202. Status)
  203. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGetWindowProperty, xGetWindowProperty,
  204. (::Display*, ::Window, Atom, long, long, Bool, Atom, Atom*, int*, unsigned long*, unsigned long*, unsigned char**),
  205. int)
  206. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGrabPointer, xGrabPointer,
  207. (::Display*, ::Window, Bool, unsigned int, int, int, ::Window, Cursor, ::Time),
  208. int)
  209. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XGrabServer, xGrabServer,
  210. (::Display*),
  211. int)
  212. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XImageByteOrder, xImageByteOrder,
  213. (::Display*),
  214. int)
  215. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XInitImage, xInitImage,
  216. (XImage*),
  217. Status)
  218. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XInitThreads, xInitThreads,
  219. (),
  220. Status)
  221. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XInstallColormap, xInstallColormap,
  222. (::Display*, Colormap),
  223. void)
  224. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XInternAtom, xInternAtom,
  225. (::Display*, const char*, Bool),
  226. Atom)
  227. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XkbKeycodeToKeysym, xkbKeycodeToKeysym,
  228. (::Display*, KeyCode, unsigned int, unsigned int),
  229. KeySym)
  230. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XKeysymToKeycode, xKeysymToKeycode,
  231. (::Display*, KeySym),
  232. KeyCode)
  233. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XListProperties, xListProperties,
  234. (::Display*, Window, int*),
  235. Atom*)
  236. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XLockDisplay, xLockDisplay,
  237. (::Display*),
  238. void)
  239. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XLookupString, xLookupString,
  240. (XKeyEvent*, const char*, int, KeySym*, XComposeStatus*),
  241. int)
  242. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XMapRaised, xMapRaised,
  243. (::Display*, ::Window),
  244. void)
  245. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XMapWindow, xMapWindow,
  246. (::Display*, ::Window),
  247. void)
  248. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XMoveResizeWindow, xMoveResizeWindow,
  249. (::Display*, ::Window, int, int, unsigned int, unsigned int),
  250. void)
  251. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XNextEvent, xNextEvent,
  252. (::Display*, XEvent*),
  253. int)
  254. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XOpenDisplay, xOpenDisplay,
  255. (const char*),
  256. ::Display*)
  257. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XPeekEvent, xPeekEvent,
  258. (::Display*, XEvent*),
  259. void)
  260. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XPending, xPending,
  261. (::Display*),
  262. int)
  263. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XPutImage, xPutImage,
  264. (::Display*, ::Drawable, GC, XImage*, int, int, int, int, unsigned int, unsigned int),
  265. void)
  266. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XPutPixel, xPutPixel,
  267. (XImage*, int, int, unsigned long),
  268. void)
  269. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XQueryBestCursor, xQueryBestCursor,
  270. (::Display*, ::Drawable, unsigned int, unsigned int, unsigned int*, unsigned int*),
  271. Status)
  272. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XQueryExtension, xQueryExtension,
  273. (::Display*, const char*, int*, int*, int*),
  274. Bool)
  275. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XQueryPointer, xQueryPointer,
  276. (::Display*, ::Window, ::Window*, ::Window*, int*, int*, int*, int*, unsigned int*),
  277. Bool)
  278. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XQueryTree, xQueryTree,
  279. (::Display*, ::Window, ::Window*, ::Window*, ::Window**, unsigned int*),
  280. Status)
  281. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XRefreshKeyboardMapping, xRefreshKeyboardMapping,
  282. (XMappingEvent*),
  283. void)
  284. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XReparentWindow, xReparentWindow,
  285. (::Display*, ::Window, ::Window, int, int),
  286. void)
  287. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XResizeWindow, xResizeWindow,
  288. (::Display*, Window, unsigned int, unsigned int),
  289. void)
  290. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XRestackWindows, xRestackWindows,
  291. (::Display*, ::Window[], int),
  292. void)
  293. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XRootWindow, xRootWindow,
  294. (::Display*, int),
  295. ::Window)
  296. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XSaveContext, xSaveContext,
  297. (::Display*, XID, XContext, XPointer),
  298. int)
  299. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XScreenCount, xScreenCount,
  300. (::Display*),
  301. int)
  302. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XScreenNumberOfScreen, xScreenNumberOfScreen,
  303. (Screen*),
  304. int)
  305. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XSelectInput, xSelectInput,
  306. (::Display*, ::Window, long),
  307. void)
  308. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XSendEvent, xSendEvent,
  309. (::Display*, ::Window, Bool, long, XEvent*),
  310. Status)
  311. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XSetClassHint, xSetClassHint,
  312. (::Display*, ::Window, XClassHint*),
  313. void)
  314. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XSetErrorHandler, xSetErrorHandler,
  315. (XErrorHandler),
  316. XErrorHandler)
  317. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XSetIOErrorHandler, xSetIOErrorHandler,
  318. (XIOErrorHandler),
  319. XIOErrorHandler)
  320. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XSetInputFocus, xSetInputFocus,
  321. (::Display*, ::Window, int, ::Time),
  322. void)
  323. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XSetSelectionOwner, xSetSelectionOwner,
  324. (::Display*, Atom, ::Window, ::Time),
  325. void)
  326. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XSetWMHints, xSetWMHints,
  327. (::Display*, ::Window, XWMHints*),
  328. void)
  329. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XSetWMIconName, xSetWMIconName,
  330. (::Display*, ::Window, XTextProperty*),
  331. void)
  332. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XSetWMName, xSetWMName,
  333. (::Display*, ::Window, XTextProperty*),
  334. void)
  335. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XSetWMNormalHints, xSetWMNormalHints,
  336. (::Display*, ::Window, XSizeHints*),
  337. void)
  338. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XStringListToTextProperty, xStringListToTextProperty,
  339. (char**, int, XTextProperty*),
  340. Status)
  341. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (Xutf8TextListToTextProperty, xutf8TextListToTextProperty,
  342. (::Display*, char**, int, XICCEncodingStyle, XTextProperty*),
  343. int)
  344. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XSync, xSync,
  345. (::Display*, Bool),
  346. void)
  347. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XSynchronize, xSynchronize,
  348. (::Display*, Bool),
  349. int)
  350. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XTranslateCoordinates, xTranslateCoordinates,
  351. (::Display*, ::Window, ::Window, int, int, int*, int*, ::Window*),
  352. Bool)
  353. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XrmUniqueQuark, xrmUniqueQuark,
  354. (),
  355. int)
  356. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XUngrabPointer, xUngrabPointer,
  357. (::Display*, ::Time),
  358. void)
  359. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XUngrabServer, xUngrabServer,
  360. (::Display*),
  361. int)
  362. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XUnlockDisplay, xUnlockDisplay,
  363. (::Display*),
  364. void)
  365. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XUnmapWindow, xUnmapWindow,
  366. (::Display*, ::Window),
  367. void)
  368. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XWarpPointer, xWarpPointer,
  369. (::Display*, ::Window, ::Window, int, int, unsigned int, unsigned int, int, int),
  370. void)
  371. #if JUCE_USE_XCURSOR
  372. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XcursorImageCreate, xcursorImageCreate,
  373. (int, int),
  374. XcursorImage*)
  375. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XcursorImageLoadCursor, xcursorImageLoadCursor,
  376. (::Display*, XcursorImage*),
  377. Cursor)
  378. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XcursorImageDestroy, xcursorImageDestroy,
  379. (XcursorImage*),
  380. void)
  381. #endif
  382. #if JUCE_USE_XINERAMA
  383. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XineramaIsActive, xineramaIsActive,
  384. (::Display*),
  385. Bool)
  386. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XineramaQueryScreens, xineramaQueryScreens,
  387. (::Display*, int*),
  388. XineramaScreenInfo*)
  389. #endif
  390. #if JUCE_USE_XRENDER
  391. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XRenderQueryVersion, xRenderQueryVersion,
  392. (::Display*, int*, int*),
  393. Status)
  394. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XRenderFindStandardFormat, xRenderFindStandardFormat,
  395. (Display*, int),
  396. XRenderPictFormat*)
  397. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XRenderFindFormat, xRenderFindFormat,
  398. (Display*, unsigned long, XRenderPictFormat*, int),
  399. XRenderPictFormat*)
  400. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XRenderFindVisualFormat, xRenderFindVisualFormat,
  401. (Display*, Visual*),
  402. XRenderPictFormat*)
  403. #endif
  404. #if JUCE_USE_XRANDR
  405. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XRRGetScreenResources, xRRGetScreenResources,
  406. (::Display*, Window),
  407. XRRScreenResources*)
  408. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XRRFreeScreenResources, xRRFreeScreenResources,
  409. (XRRScreenResources*),
  410. void)
  411. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XRRGetOutputInfo, xRRGetOutputInfo,
  412. (::Display*, XRRScreenResources*, RROutput),
  413. XRROutputInfo*)
  414. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XRRFreeOutputInfo, xRRFreeOutputInfo,
  415. (XRROutputInfo*),
  416. void)
  417. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XRRGetCrtcInfo, xRRGetCrtcInfo,
  418. (::Display*, XRRScreenResources*, RRCrtc),
  419. XRRCrtcInfo*)
  420. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XRRFreeCrtcInfo, xRRFreeCrtcInfo,
  421. (XRRCrtcInfo*),
  422. void)
  423. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XRRGetOutputPrimary, xRRGetOutputPrimary,
  424. (::Display*, ::Window),
  425. RROutput)
  426. #endif
  427. #if JUCE_USE_XSHM
  428. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XShmAttach, xShmAttach,
  429. (::Display*, XShmSegmentInfo*),
  430. Bool)
  431. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XShmCreateImage, xShmCreateImage,
  432. (::Display*, Visual*, unsigned int, int, const char*, XShmSegmentInfo*, unsigned int, unsigned int),
  433. XImage*)
  434. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XShmDetach, xShmDetach,
  435. (::Display*, XShmSegmentInfo*),
  436. Bool)
  437. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XShmGetEventBase, xShmGetEventBase,
  438. (::Display*),
  439. Status)
  440. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XShmPutImage, xShmPutImage,
  441. (::Display*, ::Drawable, GC, XImage*, int, int, int, int, unsigned int, unsigned int, bool),
  442. Bool)
  443. JUCE_GENERATE_FUNCTION_WITH_DEFAULT (XShmQueryVersion, xShmQueryVersion,
  444. (::Display*, int*, int*, Bool*),
  445. Bool)
  446. #endif
  447. //==============================================================================
  448. JUCE_DECLARE_SINGLETON (X11Symbols, false)
  449. private:
  450. X11Symbols() = default;
  451. ~X11Symbols()
  452. {
  453. clearSingletonInstance();
  454. }
  455. //==============================================================================
  456. DynamicLibrary xLib { "libX11.so.6" }, xextLib { "libXext.so.6" };
  457. #if JUCE_USE_XCURSOR
  458. DynamicLibrary xcursorLib { "libXcursor.so.1" };
  459. #endif
  460. #if JUCE_USE_XINERAMA
  461. DynamicLibrary xineramaLib { "libXinerama.so.1" };
  462. #endif
  463. #if JUCE_USE_XRENDER
  464. DynamicLibrary xrenderLib { "libXrender.so.1" };
  465. #endif
  466. #if JUCE_USE_XRANDR
  467. DynamicLibrary xrandrLib { "libXrandr.so.2" };
  468. #endif
  469. //==============================================================================
  470. JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (X11Symbols)
  471. };
  472. } // namespace juce