juce_graphics.h 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. /*
  2. ==============================================================================
  3. This file is part of the JUCE library.
  4. Copyright (c) 2017 - ROLI Ltd.
  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 5 End-User License
  8. Agreement and JUCE 5 Privacy Policy (both updated and effective as of the
  9. 27th April 2017).
  10. End User License Agreement: www.juce.com/juce-5-licence
  11. Privacy Policy: www.juce.com/juce-5-privacy-policy
  12. Or: You may also use this code under the terms of the GPL v3 (see
  13. www.gnu.org/licenses).
  14. JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
  15. EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
  16. DISCLAIMED.
  17. ==============================================================================
  18. */
  19. /*******************************************************************************
  20. The block below describes the properties of this module, and is read by
  21. the Projucer to automatically generate project code that uses it.
  22. For details about the syntax and how to create or use a module, see the
  23. JUCE Module Format.txt file.
  24. BEGIN_JUCE_MODULE_DECLARATION
  25. ID: juce_graphics
  26. vendor: juce
  27. version: 5.4.7
  28. name: JUCE graphics classes
  29. description: Classes for 2D vector graphics, image loading/saving, font handling, etc.
  30. website: http://www.juce.com/juce
  31. license: GPL/Commercial
  32. dependencies: juce_events
  33. OSXFrameworks: Cocoa QuartzCore
  34. iOSFrameworks: CoreGraphics CoreImage CoreText QuartzCore
  35. linuxPackages: x11 xinerama xext freetype2
  36. END_JUCE_MODULE_DECLARATION
  37. *******************************************************************************/
  38. #pragma once
  39. #define JUCE_GRAPHICS_H_INCLUDED
  40. #include <juce_core/juce_core.h>
  41. #include <juce_events/juce_events.h>
  42. //==============================================================================
  43. /** Config: JUCE_USE_COREIMAGE_LOADER
  44. On OSX, enabling this flag means that the CoreImage codecs will be used to load
  45. PNG/JPEG/GIF files. It is enabled by default, but you may want to disable it if
  46. you'd rather use libpng, libjpeg, etc.
  47. */
  48. #ifndef JUCE_USE_COREIMAGE_LOADER
  49. #define JUCE_USE_COREIMAGE_LOADER 1
  50. #endif
  51. /** Config: JUCE_USE_DIRECTWRITE
  52. Enabling this flag means that DirectWrite will be used when available for font
  53. management and layout.
  54. */
  55. #ifndef JUCE_USE_DIRECTWRITE
  56. #define JUCE_USE_DIRECTWRITE 1
  57. #endif
  58. /** Config: JUCE_DISABLE_COREGRAPHICS_FONT_SMOOTHING
  59. Setting this flag will turn off CoreGraphics font smoothing, which some people
  60. find makes the text too 'fat' for their taste.
  61. */
  62. #ifndef JUCE_DISABLE_COREGRAPHICS_FONT_SMOOTHING
  63. #define JUCE_DISABLE_COREGRAPHICS_FONT_SMOOTHING 0
  64. #endif
  65. #ifndef JUCE_INCLUDE_PNGLIB_CODE
  66. #define JUCE_INCLUDE_PNGLIB_CODE 1
  67. #endif
  68. #ifndef JUCE_INCLUDE_JPEGLIB_CODE
  69. #define JUCE_INCLUDE_JPEGLIB_CODE 1
  70. #endif
  71. #ifndef USE_COREGRAPHICS_RENDERING
  72. #define USE_COREGRAPHICS_RENDERING 1
  73. #endif
  74. //==============================================================================
  75. namespace juce
  76. {
  77. class Image;
  78. class AffineTransform;
  79. class Path;
  80. class Font;
  81. class Graphics;
  82. class FillType;
  83. class LowLevelGraphicsContext;
  84. }
  85. #include "geometry/juce_AffineTransform.h"
  86. #include "geometry/juce_Point.h"
  87. #include "geometry/juce_Line.h"
  88. #include "geometry/juce_Rectangle.h"
  89. #include "geometry/juce_Parallelogram.h"
  90. #include "placement/juce_Justification.h"
  91. #include "geometry/juce_Path.h"
  92. #include "geometry/juce_RectangleList.h"
  93. #include "colour/juce_PixelFormats.h"
  94. #include "colour/juce_Colour.h"
  95. #include "colour/juce_ColourGradient.h"
  96. #include "colour/juce_Colours.h"
  97. #include "geometry/juce_BorderSize.h"
  98. #include "geometry/juce_EdgeTable.h"
  99. #include "geometry/juce_PathIterator.h"
  100. #include "geometry/juce_PathStrokeType.h"
  101. #include "placement/juce_RectanglePlacement.h"
  102. #include "images/juce_ImageCache.h"
  103. #include "images/juce_ImageConvolutionKernel.h"
  104. #include "images/juce_ImageFileFormat.h"
  105. #include "fonts/juce_Typeface.h"
  106. #include "fonts/juce_Font.h"
  107. #include "fonts/juce_AttributedString.h"
  108. #include "fonts/juce_GlyphArrangement.h"
  109. #include "fonts/juce_TextLayout.h"
  110. #include "fonts/juce_CustomTypeface.h"
  111. #include "contexts/juce_GraphicsContext.h"
  112. #include "contexts/juce_LowLevelGraphicsContext.h"
  113. #include "images/juce_Image.h"
  114. #include "colour/juce_FillType.h"
  115. #include "native/juce_RenderingHelpers.h"
  116. #include "contexts/juce_LowLevelGraphicsSoftwareRenderer.h"
  117. #include "contexts/juce_LowLevelGraphicsPostScriptRenderer.h"
  118. #include "effects/juce_ImageEffectFilter.h"
  119. #include "effects/juce_DropShadowEffect.h"
  120. #include "effects/juce_GlowEffect.h"
  121. #if JUCE_GRAPHICS_INCLUDE_COREGRAPHICS_HELPERS && (JUCE_MAC || JUCE_IOS)
  122. #include "native/juce_mac_CoreGraphicsHelpers.h"
  123. #include "native/juce_mac_CoreGraphicsContext.h"
  124. #endif
  125. #if JUCE_DIRECT2D && JUCE_WINDOWS
  126. #include "native/juce_win32_Direct2DGraphicsContext.h"
  127. #endif