Commit graph

13 commits

Author SHA1 Message Date
Hermet Park
07d4db0555 jpg_loader: code refactoring
revise code to satisfy with the tvg world.
no logical changes.

 - modified file names
 - added the samsung copyright
 - removed unnecessary typedefs
 - ++indentation
 - --LOC
2021-10-26 21:16:02 +09:00
Michal Maciola
003f53376e jpg loader: support static jpeg loader using richgel999
Adds an alternative static jpg loader.

The jpg loader copied the jpeg decoding implementation from this open-source
repo: https://github.com/richgel999/jpeg-compressor
That opensource has the public-domain license, it doesn't have any restriction
of the copy.

note: jpgd.cpp is modified version (changed decompress_jpeg_image_from_stream)
for returning BGRA
2021-10-26 15:50:01 +09:00
Hermet Park
ff20974632 loaders: prepare for static jpg/png loaders.
This patch has 2 purposes,

1. revise the loaders infrastructure to support both static/external linking loaders.
2. add a template for static jpg/png loaders after external jpg/png.

Our default loaders prefer static linking, external loaders are only available
when dependent libraries on the build system are found.

You might wonder why we have the external loaders together,
they might be faster than static loaders since the popular libraries are likely to be well maintained,
fine-grained optimized.

Thus in this patch, meson tries to apply the external loaders first
then see if the dependencies were found or not,
if it's failed, it turns to the default static loaders.

Next this patch, we need the contribution for actual static jpg/png loaders implementation.

@Issue: https://github.com/Samsung/thorvg/issues/594
2021-10-05 19:22:51 +09:00
Michal Maciola
3d88d7eefc
JPG loader: print error string on failure
Added error string printing on jpg image loading failure.
The error message help developer find the corrupted jpg file.
Error message is not printed for open from char* data as there the
loaders are tried on by one.
2021-08-07 12:00:04 +09:00
Hermet Park
d213a67180 common loader: code refactoring
Bitmap based pictures doesn't need the viewbox,
LoaderModule should delegate the viewbox to the derived classes which
having vector-based image loaders such as svg, tvg.

In that case, paint resizing can be performed by the loaders by own
policy.
2021-07-28 14:16:18 +09:00
Hermet Park
e56476b7bd common: code refactoring.
renamed loader classes same to Saver classes

tvgLoaderMgr -> tvgLoader (tvgSaver)
tvgLoader -> tvgLoadModule (tvgSaveModule)
2021-07-22 17:30:02 +09:00
Hermet Park
0ca69c49ff jpg_loader: code refactoring
remove unnecessary member variables.
2021-07-19 16:02:35 +09:00
Michal Maciola
8826394b56
jpg_loader: decompress header on opening 2021-07-19 14:55:23 +09:00
Hermet Park
aa1a43e3a2 jpg_loader: code refactoring
keep it clean and neat code add some TODO comments for the future tasks.

This also fixes potential data memory leak.
2021-07-09 21:15:59 +09:00
Hermet Park
0d71a74de5 jpg_loader: change source file mode 664 2021-07-09 16:53:08 +09:00
JunsuChoi
91cf75ff04 jpg_loader JpgLoader: Prevent memory leak
If the copied data in JpgLoader's data open is invalid,
it is processed without being cleared.
Therefore, data memory free is handled in the destructor.
2021-07-09 16:50:45 +09:00
Michal Maciola
eddbb4d71d jpg_loader: introduced jpg decode using libjpeg-turbo fix #1
Added bool open(const char* data, uint32_t size, bool copy);
2021-07-07 13:44:16 +09:00
Michal Maciola
0435f29f11 jpg_loader: introduced jpg decode using libjpeg-turbo
This patch introduces a jpg loader.
For decoding the image, libjpeg-turbo library is used. Library was found to be
fast (SIMD instructions accelerated) and portable.

@issue: #517
2021-07-07 13:44:16 +09:00