1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00
Commit graph

86 commits

Author SHA1 Message Date
reuk
86732069c7
Image: Respect pixelStride when converting between image formats
Previously, this code assumed that a single channel image would always
have a pixel stride of 1. For image types where this assumption did not
hold, such as OpenGL, this function would produce incorrect results.
2025-05-19 13:32:52 +01:00
Oli
2324e34e1b Graphics: Move Image::moveImageSection into ImagePixelData
Co-authored-by: Matt Gonzalez <matt@echoaudio.com>
2025-04-24 13:58:23 +01:00
reuk
c167c6dfde Direct2D: Move ImagePixelDataNativeExtensions into separate header 2025-04-24 13:58:23 +01:00
reuk
56ea531298
CoreGraphics: Fix bug where subsection images were rendered incorrectly 2025-02-03 13:56:31 +00:00
reuk
c3e8b6bff3
CoreGraphics: Use Image NativeExtensions to avoid dynamic casts in graphics context 2025-01-23 12:21:33 +00:00
reuk
d3ca5961e7
Direct2D: Use Image NativeExtensions to avoid dynamic casts in graphics context 2025-01-23 12:21:33 +00:00
reuk
9b08c8fd51
Image: Add NativeExtensions type to help with inspecting images from graphics context implementations
This type isn't used anywhere in this commit, but this change lays the
foundation for the following commits.
2025-01-23 12:21:33 +00:00
reuk
55e5e2082c
Image: Add new backup-extensions interface to support images with no main-memory backup 2025-01-23 12:21:33 +00:00
reuk
ada2c88b03
ImagePixelData: Update signatures of functions providing whole-image effects 2025-01-23 12:21:33 +00:00
reuk
8cb8c5e572
Image: Add new BitmapData constructor accepting a Rectangle 2025-01-23 12:20:27 +00:00
tpoole
df14e83838 Image: Remove an unused function 2024-12-18 13:04:27 +00:00
reuk
52beda1396 ImagePixelData: Speed up format conversions by hoisting switch statements out of tight loops 2024-12-13 14:49:46 +00:00
reuk
f05031a898 Image: Convert structs to lambdas in implementation 2024-12-13 14:42:26 +00:00
reuk
dcca72484f Image: Update return type of getPixelData to avoid dangling pointers 2024-12-13 14:42:26 +00:00
Anthony Nicholls
5e803ded5f Deprecations: Add ignore deprecation warning macros 2024-11-27 11:07:04 +00:00
reuk
589d9940ed
Direct2D: Add support for bitmaps spanning multiple texture pages 2024-09-18 15:44:04 +01:00
reuk
590e22f320
D2D: Add faster two-pass blur implementation 2024-04-29 16:08:24 +01:00
reuk
427fec6433
Image: Add slightly faster alternative to gaussian blur for drop shadows 2024-04-29 16:08:24 +01:00
reuk
248a400b88
D2D: Use currently-selected colour when replace-clearing NativeImage 2024-04-29 16:08:23 +01:00
reuk
19061e6d17
Direct2D: Add initial support 2024-04-18 14:16:02 +01:00
Tom Poole
94d98a2b10 Update licensing information 2024-04-16 11:39:35 +01:00
Tom Poole
6bf9bb9a2e Add final specifiers in implementation files 2023-10-10 16:12:38 +01:00
Tom Poole
2ec861d99e Update licensing banners to JUCE 7 2022-05-16 17:55:48 +01:00
Tom Poole
dea3fe60e4 Update copyright banners 2022-04-04 12:36:32 +01:00
reuk
0223e44ae7
Image: Keep track of contiguous buffer size to avoid heap buffer overflows
In CoreGraphicsPixelData::createImage, image data was copied from a
BitmapData created from the Image passed into the function.

The BitmapData instance didn't keep track of the size of the buffer it
pointed to, so the buffer size was computed by multiplying the
BitmapData height by its line stride. However, if the BitmapData pointed
to a subsection of an image, the `data` pointer might be offset from
the allocated region, and `data + lineStride * height` would point past
the end of the allocated region. Trying to read/copy this range would
cause a heap buffer overflow at the end of the range.

This change adjusts BitmapData so that it keeps track of the size of the
allocated region. Taking a subsection of an image should subtract the
data pointer offset from the size of the allocated region.
2022-02-23 10:56:09 +00:00
ed
b9542ccc4c Update code to use C++14 [[deprecated]] attribute
This commit removes the various compiler-specific JUCE_DEPRECATED macros and replaces them with C++14's deprecated attribute. It also removes the JUCE_CATCH_DEPRECATED_CODE_MISUSE flag as we can rely on the override specifier catching usage of these old virtual methods, and tidies up the DOXYGEN preprocessor checks as they were inconsistent across the codebase.
2021-09-29 16:14:00 +01:00
Tom Poole
79fbde7099 Added preliminary support for FreeBSD 2021-03-29 14:16:46 +01:00
reuk
394c4fd475 Clang: Fix warnings when building with clang 10 2020-07-01 10:00:43 +01:00
ed
009d685179 Updated all license headers 2020-06-29 08:30:22 +01:00
Tom Poole
894e7d2bd2 Updated all license headers 2020-04-23 17:30:39 +01:00
reuk
327f817b9b Copyrights: Update commercial/gpl headers to be gpl-only 2020-04-09 15:22:56 +01:00
Tom Poole
034ca9347e Fixed a potential overflow when dealing with large images 2020-03-27 08:51:52 +00:00
ed
59a058fdc6 Fixed some warnings flagged up when enabling -Wswitch-enum, -Wswitch-default, -Wredundant-decls, and -Wimplicit-fallthrough 2020-03-09 17:39:28 +00:00
jules
f58eacc135 Added more unique_ptr use, for functions that create LowLevelGraphicsContext or ImageType objects. 2019-05-15 12:08:38 +01:00
ed
eaf0f990d4 Replaced all uses of static_cast<Type&&> with std::move 2018-11-28 17:29:20 +00:00
Tom Poole
b66f78bacf Fixed some CoreGraphics image issues in the latest iOS and MacOS SDKs 2018-10-03 15:22:22 +01:00
jules
1e6bbb8da9 Added some methods to allow ReferenceCountedObjectPtrs to be constructed or copied from references as well as pointers - as well as increasing safety, this actually makes things a bit more efficient as it skips a nullptr check. Updated lots of places in the code that could take advantage of this 2018-07-03 11:51:13 +01:00
jules
49aa9c9db4 Added flag JUCE_STRICT_REFCOUNTEDPOINTER which is recommended to avoid accidental leaks when using ref-counted pointers. Enabled this flag in the demo projects, and used it to help tidy up some dubious smart-pointer use 2018-06-26 14:06:52 +01:00
jules
dee78f29f6 Misc cleanups and modernisation 2018-05-11 12:46:30 +01:00
jules
30f6206be9 Fix for compile error with JUCE_ALLOW_STATIC_NULL_VARIABLES=0 2018-05-10 09:10:09 +01:00
jules
8c38c6f57f Marked as deprecated: String::empty, var::null, File::nonexistent, ValueTree::invalid and other problematic statically-initialised null values. Please just use the default constructor for these classes! 2018-05-09 08:08:46 +01:00
Tom Poole
ab863a6dc2 Replaced all usage of ScopedPointer with std::unique_ptr 2018-04-19 20:27:47 +01:00
jules
a586966c65 Added lambda callback methods to ListenerList. Its old method-invocation callbacks were refactored to use variadic templates instead of the old awful macros they used in the past, but please move your code to use the new lambda functions, as the one stuff will eventually be deprecated! 2017-11-28 16:18:40 +00:00
Tom Poole
856e028127 MacOS: Fixed some more integer overflow issues when loading large images 2017-11-21 16:32:56 +00:00
jules
eda613c6db Moved all "namespace juce" declarations from module headers to the individual .h and .cpp source files. This makes life a lot easier for Intellisense and other IDE autocompletion tools 2017-09-08 08:59:55 +01:00
hogliux
7bae8a426b Fixed a potential nullptr dereference in Image::clear() 2017-08-14 09:44:10 +01:00
jules
8689df5590 Fixed a few c++17 warnings 2017-05-02 10:18:33 +01:00
hogliux
b5afccc37c Updated file headers and the README with the JUCE 5 license 2017-04-27 14:43:04 +01:00
hogliux
9f3fb1c0a6 Added a compiler error if your compiler is too old and removed numerous code checks for old compilers which are now deprecated 2017-02-01 17:18:06 +00:00
jules
9fa0d49be7 Added an option JUCE_ALLOW_STATIC_NULL_VARIABLES that can be used to turn off dangerous statics like String::empty, var::null, etc. 2016-09-16 12:03:02 +01:00