├── .gitattributes ├── .gitignore ├── LICENSE ├── ObjectViewer.pro ├── README.md ├── UML ├── ClassDiagram.png └── MODELIO │ └── ObjectViewerProject.zip ├── images.qrc ├── includes ├── ImageMagick │ ├── Magick++.h │ ├── Magick++ │ │ ├── Blob.h │ │ ├── BlobRef.h │ │ ├── CoderInfo.h │ │ ├── Color.h │ │ ├── Drawable.h │ │ ├── Exception.h │ │ ├── Functions.h │ │ ├── Geometry.h │ │ ├── Image.h │ │ ├── ImageRef.h │ │ ├── Include.h │ │ ├── Montage.h │ │ ├── Options.h │ │ ├── Pixels.h │ │ ├── STL.h │ │ ├── Thread.h │ │ └── TypeMetric.h │ ├── magick │ │ ├── ImageMagick.h │ │ ├── MagickCore.h │ │ ├── PreRvIcccm.h │ │ ├── accelerate-private.h │ │ ├── accelerate.h │ │ ├── animate-private.h │ │ ├── animate.h │ │ ├── annotate.h │ │ ├── api.h │ │ ├── artifact.h │ │ ├── attribute.h │ │ ├── blob-private.h │ │ ├── blob.h │ │ ├── cache-private.h │ │ ├── cache-view.h │ │ ├── cache.h │ │ ├── channel.h │ │ ├── cipher.h │ │ ├── client.h │ │ ├── coder.h │ │ ├── color-private.h │ │ ├── color.h │ │ ├── colormap-private.h │ │ ├── colormap.h │ │ ├── colorspace-private.h │ │ ├── colorspace.h │ │ ├── compare.h │ │ ├── composite-private.h │ │ ├── composite.h │ │ ├── compress.h │ │ ├── configure.h │ │ ├── constitute.h │ │ ├── decorate.h │ │ ├── delegate-private.h │ │ ├── delegate.h │ │ ├── deprecate.h │ │ ├── display-private.h │ │ ├── display.h │ │ ├── distort.h │ │ ├── distribute-cache-private.h │ │ ├── distribute-cache.h │ │ ├── draw-private.h │ │ ├── draw.h │ │ ├── effect.h │ │ ├── enhance.h │ │ ├── exception-private.h │ │ ├── exception.h │ │ ├── feature.h │ │ ├── fourier.h │ │ ├── fx-private.h │ │ ├── fx.h │ │ ├── gem-private.h │ │ ├── gem.h │ │ ├── geometry.h │ │ ├── hashmap.h │ │ ├── histogram.h │ │ ├── identify.h │ │ ├── image-private.h │ │ ├── image-view.h │ │ ├── image.h │ │ ├── layer.h │ │ ├── list.h │ │ ├── locale_.h │ │ ├── log.h │ │ ├── mac.h │ │ ├── magic.h │ │ ├── magick-baseconfig.h │ │ ├── magick-config.h │ │ ├── magick-type.h │ │ ├── magick.h │ │ ├── matrix.h │ │ ├── memory-private.h │ │ ├── memory_.h │ │ ├── method-attribute.h │ │ ├── methods.h │ │ ├── mime-private.h │ │ ├── mime.h │ │ ├── module.h │ │ ├── monitor-private.h │ │ ├── monitor.h │ │ ├── montage.h │ │ ├── morphology-private.h │ │ ├── morphology.h │ │ ├── nt-base.h │ │ ├── nt-feature.h │ │ ├── opencl-private.h │ │ ├── opencl.h │ │ ├── option.h │ │ ├── paint.h │ │ ├── pixel-accessor.h │ │ ├── pixel-private.h │ │ ├── pixel.h │ │ ├── policy.h │ │ ├── prepress.h │ │ ├── profile.h │ │ ├── property.h │ │ ├── quantize.h │ │ ├── quantum-private.h │ │ ├── quantum.h │ │ ├── random-private.h │ │ ├── random_.h │ │ ├── registry.h │ │ ├── resample-private.h │ │ ├── resample.h │ │ ├── resize-private.h │ │ ├── resize.h │ │ ├── resource_.h │ │ ├── segment.h │ │ ├── semaphore-private.h │ │ ├── semaphore.h │ │ ├── shear.h │ │ ├── signature-private.h │ │ ├── signature.h │ │ ├── splay-tree.h │ │ ├── static.h │ │ ├── statistic.h │ │ ├── stream-private.h │ │ ├── stream.h │ │ ├── string-private.h │ │ ├── string_.h │ │ ├── studio.h │ │ ├── thread-private.h │ │ ├── thread_.h │ │ ├── threshold.h │ │ ├── timer.h │ │ ├── token-private.h │ │ ├── token.h │ │ ├── transform.h │ │ ├── type.h │ │ ├── utility-private.h │ │ ├── utility.h │ │ ├── version-private.h │ │ ├── version.h │ │ ├── vms.h │ │ ├── widget.h │ │ ├── xml-tree.h │ │ ├── xwindow-private.h │ │ └── xwindow.h │ └── wand │ │ ├── MagickWand.h │ │ ├── animate.h │ │ ├── compare.h │ │ ├── composite.h │ │ ├── conjure.h │ │ ├── convert.h │ │ ├── deprecate.h │ │ ├── display.h │ │ ├── drawing-wand.h │ │ ├── identify.h │ │ ├── import.h │ │ ├── magick-image.h │ │ ├── magick-property.h │ │ ├── magick-wand-private.h │ │ ├── magick-wand.h │ │ ├── magick_wand.h │ │ ├── method-attribute.h │ │ ├── mogrify-private.h │ │ ├── mogrify.h │ │ ├── montage.h │ │ ├── pixel-iterator.h │ │ ├── pixel-wand-private.h │ │ ├── pixel-wand.h │ │ ├── stream.h │ │ ├── studio.h │ │ ├── wand-config.h │ │ ├── wand-view.h │ │ └── wand.h └── assimp │ ├── Compiler │ ├── poppack1.h │ └── pushpack1.h │ ├── DefaultLogger.hpp │ ├── Exporter.hpp │ ├── IOStream.hpp │ ├── IOSystem.hpp │ ├── Importer.hpp │ ├── LogStream.hpp │ ├── Logger.hpp │ ├── NullLogger.hpp │ ├── ProgressHandler.hpp │ ├── ai_assert.h │ ├── anim.h │ ├── camera.h │ ├── cexport.h │ ├── cfileio.h │ ├── cimport.h │ ├── color4.h │ ├── color4.inl │ ├── config.h │ ├── defs.h │ ├── importerdesc.h │ ├── light.h │ ├── material.h │ ├── material.inl │ ├── matrix3x3.h │ ├── matrix3x3.inl │ ├── matrix4x4.h │ ├── matrix4x4.inl │ ├── mesh.h │ ├── postprocess.h │ ├── quaternion.h │ ├── quaternion.inl │ ├── scene.h │ ├── texture.h │ ├── types.h │ ├── vector2.h │ ├── vector2.inl │ ├── vector3.h │ ├── vector3.inl │ └── version.h ├── libs ├── CORE_RL_Magick++_.lib └── assimp.lib ├── resources ├── images │ └── splash.png ├── shaders │ ├── basic.frag │ ├── basic.vert │ └── lighting │ │ ├── normal-mapping.frag │ │ ├── normal-mapping.vert │ │ ├── per-fragment-blinn-phong.frag │ │ ├── per-fragment-blinn-phong.vert │ │ ├── per-fragment-phong.frag │ │ ├── per-fragment-phong.vert │ │ ├── per-vertex-phong.frag │ │ ├── per-vertex-phong.vert │ │ ├── point-light.vert │ │ ├── rim-lighting.frag │ │ └── rim-lighting.vert └── textures │ ├── crate.jpg │ ├── grass.png │ ├── rock.png │ ├── snowrocks.png │ └── white.png ├── shaders.qrc ├── src ├── helpers │ ├── MathUtils.h │ ├── opengluniformbuffer.cpp │ ├── opengluniformbuffer.h │ ├── shaders.cpp │ └── shaders.h ├── main.cpp ├── materials │ ├── abstractmaterialmanager.cpp │ ├── abstractmaterialmanager.h │ ├── abstracttexturemanager.cpp │ ├── abstracttexturemanager.h │ ├── material.cpp │ ├── material.h │ ├── materialmanager.cpp │ ├── materialmanager.h │ ├── texture.cpp │ ├── texture.h │ ├── texturemanager.cpp │ └── texturemanager.h ├── objects │ ├── abstractmeshmanager.cpp │ ├── abstractmeshmanager.h │ ├── abstractmodel.cpp │ ├── abstractmodel.h │ ├── abstractmodelmanager.cpp │ ├── abstractmodelmanager.h │ ├── abstractscene.cpp │ ├── abstractscene.h │ ├── camera.cpp │ ├── camera.h │ ├── camera_p.h │ ├── light.cpp │ ├── light.h │ ├── mesh.cpp │ ├── mesh.h │ ├── meshmanager.cpp │ ├── meshmanager.h │ ├── model.cpp │ ├── model.h │ ├── modelloader.cpp │ ├── modelloader.h │ ├── modelmanager.cpp │ ├── modelmanager.h │ ├── object3d.cpp │ ├── object3d.h │ ├── scene.cpp │ └── scene.h └── ui │ ├── mainwindow.cpp │ ├── mainwindow.h │ ├── window.cpp │ └── window.h └── textures.qrc /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # C++ objects and libs 2 | 3 | *.slo 4 | *.lo 5 | *.o 6 | *.a 7 | *.la 8 | *.lai 9 | *.so 10 | *.dll 11 | *.dylib 12 | 13 | # Qt-es 14 | 15 | *.pro.user 16 | *.pro.user.* 17 | moc_*.cpp 18 | qrc_*.cpp 19 | Makefile 20 | *-build-* 21 | 22 | build/tmp/* 23 | build/debug/* -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ObjectViewer 2 | ============ 3 | 4 | ### Linux 5 | 6 | ![ObjectViewer](http://image.noelshack.com/fichiers/2013/48/1385350699-objectviewer-linux.png "ObjectViewer") 7 | 8 | ![ObjectViewer](http://image.noelshack.com/fichiers/2014/05/1391282727-objectviewer-linux-transparency.png "ObjectViewer") 9 | 10 | ### Windows 11 | 12 | ![ObjectViewer](http://image.noelshack.com/fichiers/2013/47/1385230953-objectviewer.png "ObjectViewer") 13 | 14 | ![ObjectViewer](http://image.noelshack.com/fichiers/2013/47/1385230953-objctviewer-wireframe.png "ObjectViewer") 15 | -------------------------------------------------------------------------------- /UML/ClassDiagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hardware/ObjectViewer/718922e00a6f3e83510e6091f7630ac3c0e5066b/UML/ClassDiagram.png -------------------------------------------------------------------------------- /UML/MODELIO/ObjectViewerProject.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hardware/ObjectViewer/718922e00a6f3e83510e6091f7630ac3c0e5066b/UML/MODELIO/ObjectViewerProject.zip -------------------------------------------------------------------------------- /images.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | resources/images/splash.png 4 | 5 | 6 | -------------------------------------------------------------------------------- /includes/ImageMagick/Magick++.h: -------------------------------------------------------------------------------- 1 | // This may look like C code, but it is really -*- C++ -*- 2 | // 3 | // Copyright Bob Friesenhahn, 1999, 2000 4 | // 5 | // Simplified includes for Magick++. 6 | // Inclusion of this header is sufficient to use all Magick++ APIs. 7 | // 8 | #ifndef MagickPlusPlus_Header 9 | #include "Magick++/Include.h" 10 | #include "Magick++/Image.h" 11 | #include "Magick++/Pixels.h" 12 | #include "Magick++/STL.h" 13 | #define MagickPlusPlus_Header 14 | #endif // MagickPlusPlus_Header 15 | -------------------------------------------------------------------------------- /includes/ImageMagick/Magick++/BlobRef.h: -------------------------------------------------------------------------------- 1 | // This may look like C code, but it is really -*- C++ -*- 2 | // 3 | // Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002 4 | // 5 | // Blob reference class 6 | // 7 | // This is an internal implementation class that should not be 8 | // accessed by users. 9 | // 10 | 11 | #if !defined(Magick_Blob_header) 12 | #define Magick_Blob_header 13 | 14 | #include "Include.h" 15 | #include "Thread.h" 16 | #include "Blob.h" 17 | 18 | namespace Magick 19 | { 20 | 21 | class BlobRef { 22 | public: 23 | // There are no public methods in this class 24 | 25 | // Construct with data, making private copy of data 26 | BlobRef ( const void* data_, size_t length_ ); 27 | 28 | // Destructor (actually destroys data) 29 | ~BlobRef ( void ); 30 | 31 | private: 32 | // Copy constructor and assignment are not supported 33 | BlobRef (const BlobRef&); 34 | BlobRef& operator= (const BlobRef&); 35 | 36 | public: 37 | void * _data; // Blob data 38 | size_t _length; // Blob length 39 | Blob::Allocator _allocator; // Memory allocation system in use 40 | ::ssize_t _refCount; // Reference count 41 | MutexLock _mutexLock; // Mutex lock 42 | }; 43 | 44 | } // namespace Magick 45 | 46 | #endif // Magick_Blob_header 47 | -------------------------------------------------------------------------------- /includes/ImageMagick/Magick++/CoderInfo.h: -------------------------------------------------------------------------------- 1 | // This may look like C code, but it is really -*- C++ -*- 2 | // 3 | // Copyright Bob Friesenhahn, 2001, 2002 4 | // 5 | // CoderInfo Definition 6 | // 7 | // Container for image format support information. 8 | // 9 | 10 | #if !defined (Magick_CoderInfo_header) 11 | #define Magick_CoderInfo_header 1 12 | 13 | #include "Include.h" 14 | #include 15 | 16 | namespace Magick 17 | { 18 | class MagickPPExport CoderInfo 19 | { 20 | public: 21 | 22 | enum MatchType { 23 | AnyMatch, // match any coder 24 | TrueMatch, // match coder if true 25 | FalseMatch // match coder if false 26 | }; 27 | 28 | // Default constructor 29 | CoderInfo ( void ); 30 | 31 | // Copy constructor 32 | CoderInfo ( const CoderInfo &coder_ ); 33 | 34 | // Construct with coder name 35 | CoderInfo ( const std::string &name_ ); 36 | 37 | // Destructor 38 | ~CoderInfo ( void ); 39 | 40 | // Format description 41 | std::string description( void ) const; 42 | 43 | // Format supports multiple frames 44 | bool isMultiFrame( void ) const; 45 | 46 | // Format is readable 47 | bool isReadable( void ) const; 48 | 49 | // Format is writeable 50 | bool isWritable( void ) const; 51 | 52 | // Format mime type 53 | std::string mimeType( void ) const; 54 | 55 | // Format name 56 | std::string name( void ) const; 57 | 58 | // Assignment operator 59 | CoderInfo& operator= ( const CoderInfo &coder_ ); 60 | 61 | // 62 | // Implemementation methods 63 | // 64 | CoderInfo ( const MagickCore::MagickInfo *magickInfo_ ); 65 | 66 | private: 67 | 68 | std::string _name; 69 | std::string _description; 70 | std::string _mimeType; 71 | bool _isReadable; 72 | bool _isWritable; 73 | bool _isMultiFrame; 74 | 75 | }; 76 | } // namespace Magick 77 | 78 | // 79 | // Inlines 80 | // 81 | 82 | 83 | #endif // Magick_CoderInfo_header 84 | -------------------------------------------------------------------------------- /includes/ImageMagick/Magick++/Functions.h: -------------------------------------------------------------------------------- 1 | // This may look like C code, but it is really -*- C++ -*- 2 | // 3 | // Copyright Bob Friesenhahn, 1999, 2000, 2001, 2003 4 | // 5 | // Simple C++ function wrappers for often used or otherwise 6 | // inconvenient ImageMagick equivalents 7 | // 8 | 9 | #if !defined(Magick_Functions_header) 10 | #define Magick_Functions_header 11 | 12 | #include "Include.h" 13 | #include 14 | 15 | namespace Magick 16 | { 17 | void MagickPPExport CloneString( char **destination_, const std::string &source_ ); 18 | 19 | } 20 | #endif // Magick_Functions_header 21 | -------------------------------------------------------------------------------- /includes/ImageMagick/Magick++/ImageRef.h: -------------------------------------------------------------------------------- 1 | // This may look like C code, but it is really -*- C++ -*- 2 | // 3 | // Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002 4 | // 5 | // Definition of an Image reference 6 | // 7 | // This is a private implementation class which should never be 8 | // referenced by any user code. 9 | // 10 | 11 | #if !defined(Magick_ImageRef_header) 12 | #define Magick_ImageRef_header 13 | 14 | #include "Include.h" 15 | #include "Thread.h" 16 | 17 | namespace Magick 18 | { 19 | class Options; 20 | 21 | // 22 | // Reference counted access to Image * 23 | // 24 | class MagickPPExport ImageRef { 25 | friend class Image; 26 | private: 27 | // Construct with an image pointer and default options 28 | ImageRef ( MagickCore::Image * image_ ); 29 | // Construct with an image pointer and options 30 | ImageRef ( MagickCore::Image * image_, const Options * options_ ); 31 | // Construct with null image and default options 32 | ImageRef ( void ); 33 | // Destroy image and options 34 | ~ImageRef ( void ); 35 | 36 | // Copy constructor and assignment are not supported 37 | ImageRef(const ImageRef&); 38 | ImageRef& operator=(const ImageRef&); 39 | 40 | void image ( MagickCore::Image * image_ ); 41 | MagickCore::Image *& image ( void ); 42 | 43 | void options ( Options * options_ ); 44 | Options * options ( void ); 45 | 46 | void id ( const ::ssize_t id_ ); 47 | ::ssize_t id ( void ) const; 48 | 49 | MagickCore::Image * _image; // ImageMagick Image 50 | Options * _options; // User-specified options 51 | ::ssize_t _id; // Registry ID (-1 if not registered) 52 | ::ssize_t _refCount; // Reference count 53 | MutexLock _mutexLock;// Mutex lock 54 | }; 55 | 56 | } // end of namespace Magick 57 | 58 | // 59 | // Inlines 60 | // 61 | 62 | // Retrieve image from reference 63 | inline MagickCore::Image *& Magick::ImageRef::image ( void ) 64 | { 65 | return _image; 66 | } 67 | 68 | // Retrieve Options from reference 69 | inline Magick::Options * Magick::ImageRef::options ( void ) 70 | { 71 | return _options; 72 | } 73 | 74 | // Retrieve registration id from reference 75 | inline ::ssize_t Magick::ImageRef::id ( void ) const 76 | { 77 | return _id; 78 | } 79 | 80 | #endif // Magick_ImageRef_header 81 | -------------------------------------------------------------------------------- /includes/ImageMagick/Magick++/TypeMetric.h: -------------------------------------------------------------------------------- 1 | // This may look like C code, but it is really -*- C++ -*- 2 | // 3 | // Copyright Bob Friesenhahn, 2001, 2002 4 | // 5 | // TypeMetric Definition 6 | // 7 | // Container for font type metrics 8 | // 9 | 10 | #if !defined (Magick_TypeMetric_header) 11 | #define Magick_TypeMetric_header 12 | 13 | #include "Include.h" 14 | 15 | namespace Magick 16 | { 17 | class MagickPPExport TypeMetric 18 | { 19 | friend class Image; 20 | public: 21 | 22 | TypeMetric ( void ); 23 | ~TypeMetric ( void ); 24 | 25 | // Ascent, the distance in pixels from the text baseline to the 26 | // highest/upper grid coordinate used to place an outline point. 27 | double ascent ( void ) const; 28 | 29 | // Descent, the distance in pixels from the baseline to the lowest 30 | // grid coordinate used to place an outline point. Always a 31 | // negative value. 32 | double descent ( void ) const; 33 | 34 | // Text width in pixels. 35 | double textWidth ( void ) const; 36 | 37 | // Text height in pixels. 38 | double textHeight ( void ) const; 39 | 40 | // Maximum horizontal advance in pixels. 41 | double maxHorizontalAdvance ( void ) const; 42 | 43 | // 44 | // Public methods below this point are for Magick++ use only. 45 | // 46 | 47 | private: 48 | MagickCore::TypeMetric _typeMetric; 49 | }; 50 | } // namespace Magick 51 | 52 | // 53 | // Inlines 54 | // 55 | 56 | 57 | #endif // Magick_TypeMetric_header 58 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/ImageMagick.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | Deprecated as of ImageMagick 6.2.3. 17 | 18 | MagickCore Application Programming Interface declarations. 19 | */ 20 | 21 | #ifndef _MAGICKCORE_IMAGEMAGICK_DEPRECATED_H 22 | #define _MAGICKCORE_IMAGEMAGICK_DEPRECATED_H 23 | 24 | #if defined(__cplusplus) || defined(c_plusplus) 25 | extern "C" { 26 | #endif 27 | 28 | #include "magick/MagickCore.h" 29 | 30 | #if defined(__cplusplus) || defined(c_plusplus) 31 | } 32 | #endif 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/accelerate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore acceleration methods. 17 | */ 18 | #ifndef _MAGICKCORE_ACCELERATE_H 19 | #define _MAGICKCORE_ACCELERATE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #include "morphology.h" 26 | #include "resample.h" 27 | #include "resize.h" 28 | #include "statistic.h" 29 | 30 | extern MagickExport MagickBooleanType 31 | AccelerateContrastImage(Image *,const MagickBooleanType,ExceptionInfo *), 32 | AccelerateConvolveImage(const Image *,const KernelInfo *,Image *, 33 | ExceptionInfo *), 34 | AccelerateEqualizeImage(Image *,const ChannelType,ExceptionInfo *), 35 | AccelerateFunctionImage(Image *,const ChannelType,const MagickFunction, 36 | const size_t,const double *,ExceptionInfo *); 37 | 38 | extern MagickExport Image 39 | *AccelerateBlurImage(const Image *,const ChannelType,const double, 40 | const double,ExceptionInfo *), 41 | *AccelerateConvolveImageChannel(const Image *,const ChannelType, 42 | const KernelInfo *,ExceptionInfo *), 43 | *AccelerateDespeckleImage(const Image *,ExceptionInfo *), 44 | *AccelerateRadialBlurImage(const Image *,const ChannelType,const double, 45 | ExceptionInfo *), 46 | *AccelerateResizeImage(const Image *,const size_t,const size_t, 47 | const ResizeFilter *,ExceptionInfo *), 48 | *AccelerateUnsharpMaskImage(const Image *,const ChannelType,const double, 49 | const double,const double,const double,ExceptionInfo *); 50 | 51 | 52 | #if defined(__cplusplus) || defined(c_plusplus) 53 | } 54 | #endif 55 | 56 | #endif 57 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/animate-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore private methods to interactively animate an image sequence. 17 | */ 18 | #ifndef _MAGICKCORE_ANIMATE_PRIVATE_H 19 | #define _MAGICKCORE_ANIMATE_PRIVATE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #if defined(MAGICKCORE_X11_DELEGATE) 26 | #include "magick/xwindow-private.h" 27 | 28 | extern MagickExport Image 29 | *XAnimateImages(Display *,XResourceInfo *,char **,const int,Image *); 30 | 31 | extern MagickExport void 32 | XAnimateBackgroundImage(Display *,XResourceInfo *,Image *); 33 | #endif 34 | 35 | #if defined(__cplusplus) || defined(c_plusplus) 36 | } 37 | #endif 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/animate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore methods to interactively animate an image sequence. 17 | */ 18 | #ifndef _MAGICKCORE_ANIMATE_H 19 | #define _MAGICKCORE_ANIMATE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | extern MagickExport MagickBooleanType 26 | AnimateImages(const ImageInfo *,Image *); 27 | 28 | #if defined(__cplusplus) || defined(c_plusplus) 29 | } 30 | #endif 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/annotate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore image annotation methods. 17 | */ 18 | #ifndef _MAGICKCORE_ANNOTATE_H 19 | #define _MAGICKCORE_ANNOTATE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #include "draw.h" 26 | 27 | extern MagickExport MagickBooleanType 28 | AnnotateComponentGenesis(void), 29 | AnnotateImage(Image *,const DrawInfo *), 30 | GetMultilineTypeMetrics(Image *,const DrawInfo *,TypeMetric *), 31 | GetTypeMetrics(Image *,const DrawInfo *,TypeMetric *); 32 | 33 | extern MagickExport ssize_t 34 | FormatMagickCaption(Image *,DrawInfo *,const MagickBooleanType,TypeMetric *, 35 | char **); 36 | 37 | extern MagickExport void 38 | AnnotateComponentTerminus(void); 39 | 40 | #if defined(__cplusplus) || defined(c_plusplus) 41 | } 42 | #endif 43 | 44 | #endif 45 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/api.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | Deprecated as of ImageMagick 6.2.3. 17 | 18 | MagickCore Application Programming Interface declarations. 19 | */ 20 | 21 | #ifndef _MAGICKCORE_API_DEPRECATED_H 22 | #define _MAGICKCORE_API_DEPRECATED_H 23 | 24 | #if defined(__cplusplus) || defined(c_plusplus) 25 | extern "C" { 26 | #endif 27 | 28 | #include "magick/MagickCore.h" 29 | 30 | #if defined(__cplusplus) || defined(c_plusplus) 31 | } 32 | #endif 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/artifact.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore artifact methods. 17 | */ 18 | #ifndef _MAGICKCORE_ARTIFACT_H 19 | #define _MAGICKCORE_ARTIFACT_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | extern MagickExport char 26 | *GetNextImageArtifact(const Image *), 27 | *RemoveImageArtifact(Image *,const char *); 28 | 29 | extern MagickExport const char 30 | *GetImageArtifact(const Image *,const char *); 31 | 32 | extern MagickExport MagickBooleanType 33 | CloneImageArtifacts(Image *,const Image *), 34 | DefineImageArtifact(Image *,const char *), 35 | DeleteImageArtifact(Image *,const char *), 36 | SetImageArtifact(Image *,const char *,const char *); 37 | 38 | extern MagickExport void 39 | DestroyImageArtifacts(Image *), 40 | ResetImageArtifactIterator(const Image *); 41 | 42 | #if defined(__cplusplus) || defined(c_plusplus) 43 | } 44 | #endif 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/attribute.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore methods to set or get image attributes. 17 | */ 18 | #ifndef _MAGICKCORE_ATTRIBUTE_H 19 | #define _MAGICKCORE_ATTRIBUTE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #include "image.h" 26 | #include "exception.h" 27 | 28 | extern MagickExport ImageType 29 | GetImageType(const Image *,ExceptionInfo *); 30 | 31 | extern MagickExport MagickBooleanType 32 | IsGrayImage(const Image *,ExceptionInfo *), 33 | IsMonochromeImage(const Image *,ExceptionInfo *), 34 | IsOpaqueImage(const Image *,ExceptionInfo *), 35 | SetImageChannelDepth(Image *,const ChannelType,const size_t), 36 | SetImageDepth(Image *,const size_t), 37 | SetImageType(Image *,const ImageType); 38 | 39 | extern MagickExport RectangleInfo 40 | GetImageBoundingBox(const Image *,ExceptionInfo *exception); 41 | 42 | extern MagickExport size_t 43 | GetImageChannelDepth(const Image *,const ChannelType,ExceptionInfo *), 44 | GetImageDepth(const Image *,ExceptionInfo *), 45 | GetImageQuantumDepth(const Image *,const MagickBooleanType); 46 | 47 | #if defined(__cplusplus) || defined(c_plusplus) 48 | } 49 | #endif 50 | 51 | #endif 52 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/channel.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore image channel methods. 17 | */ 18 | #ifndef _MAGICKCORE_CHANNEL_H 19 | #define _MAGICKCORE_CHANNEL_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #include "image.h" 26 | 27 | extern MagickExport Image 28 | *CombineImages(const Image *,const ChannelType,ExceptionInfo *), 29 | *SeparateImage(const Image *,const ChannelType,ExceptionInfo *), 30 | *SeparateImages(const Image *,const ChannelType,ExceptionInfo *); 31 | 32 | extern MagickExport MagickBooleanType 33 | GetImageAlphaChannel(const Image *), 34 | SeparateImageChannel(Image *,const ChannelType), 35 | SetImageAlphaChannel(Image *,const AlphaChannelType); 36 | 37 | #if defined(__cplusplus) || defined(c_plusplus) 38 | } 39 | #endif 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/cipher.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore cipher methods. 17 | */ 18 | #ifndef _MAGICKCORE_CIPHER_H 19 | #define _MAGICKCORE_CIPHER_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | extern MagickExport MagickBooleanType 26 | DecipherImage(Image *,const char *,ExceptionInfo *), 27 | EncipherImage(Image *,const char *,ExceptionInfo *), 28 | PasskeyDecipherImage(Image *,const StringInfo *,ExceptionInfo *), 29 | PasskeyEncipherImage(Image *,const StringInfo *,ExceptionInfo *); 30 | 31 | #if defined(__cplusplus) || defined(c_plusplus) 32 | } 33 | #endif 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/client.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore client methods. 17 | */ 18 | #ifndef _MAGICKCORE_CLIENT_H 19 | #define _MAGICKCORE_CLIENT_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | extern MagickExport const char 26 | *GetClientPath(void), 27 | *GetClientName(void), 28 | *SetClientName(const char *), 29 | *SetClientPath(const char *); 30 | 31 | #if defined(__cplusplus) || defined(c_plusplus) 32 | } 33 | #endif 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/coder.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore image coder methods. 17 | */ 18 | #ifndef _MAGICKCORE_CODER_H 19 | #define _MAGICKCORE_CODER_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | typedef struct _CoderInfo 26 | { 27 | char 28 | *path, 29 | *magick, 30 | *name; 31 | 32 | MagickBooleanType 33 | exempt, 34 | stealth; 35 | 36 | struct _CoderInfo 37 | *previous, 38 | *next; /* deprecated, use GetCoderInfoList() */ 39 | 40 | size_t 41 | signature; 42 | } CoderInfo; 43 | 44 | extern MagickExport char 45 | **GetCoderList(const char *,size_t *,ExceptionInfo *); 46 | 47 | extern MagickExport const CoderInfo 48 | *GetCoderInfo(const char *,ExceptionInfo *), 49 | **GetCoderInfoList(const char *,size_t *,ExceptionInfo *); 50 | 51 | extern MagickExport MagickBooleanType 52 | CoderComponentGenesis(void), 53 | ListCoderInfo(FILE *,ExceptionInfo *); 54 | 55 | MagickExport void 56 | CoderComponentTerminus(void); 57 | 58 | #if defined(__cplusplus) || defined(c_plusplus) 59 | } 60 | #endif 61 | 62 | #endif 63 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/colormap-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore image colormap methods. 17 | */ 18 | #ifndef _MAGICKCORE_COLORMAP_PRIVATE_H 19 | #define _MAGICKCORE_COLORMAP_PRIVATE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #include "magick/image.h" 26 | #include "magick/color.h" 27 | #include "magick/exception-private.h" 28 | 29 | static inline IndexPacket ConstrainColormapIndex(Image *image, 30 | const size_t index) 31 | { 32 | if (index < image->colors) 33 | return((IndexPacket) index); 34 | (void) ThrowMagickException(&image->exception,GetMagickModule(), 35 | CorruptImageError,"InvalidColormapIndex","`%s'",image->filename); 36 | return((IndexPacket) 0); 37 | } 38 | 39 | #if defined(__cplusplus) || defined(c_plusplus) 40 | } 41 | #endif 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/colormap.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore image colormap methods. 17 | */ 18 | #ifndef _MAGICKCORE_COLORMAP_H 19 | #define _MAGICKCORE_COLORMAP_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | extern MagickExport MagickBooleanType 26 | AcquireImageColormap(Image *,const size_t), 27 | CycleColormapImage(Image *,const ssize_t), 28 | SortColormapByIntensity(Image *); 29 | 30 | #if defined(__cplusplus) || defined(c_plusplus) 31 | } 32 | #endif 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/compare.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore image compare methods. 17 | */ 18 | #ifndef _MAGICKCORE_COMPARE_H 19 | #define _MAGICKCORE_COMPARE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #include "image.h" 26 | 27 | typedef enum 28 | { 29 | UndefinedMetric, 30 | AbsoluteErrorMetric, 31 | MeanAbsoluteErrorMetric, 32 | MeanErrorPerPixelMetric, 33 | MeanSquaredErrorMetric, 34 | PeakAbsoluteErrorMetric, 35 | PeakSignalToNoiseRatioMetric, 36 | RootMeanSquaredErrorMetric, 37 | NormalizedCrossCorrelationErrorMetric, 38 | FuzzErrorMetric, 39 | UndefinedErrorMetric = 0 40 | } MetricType; 41 | 42 | extern MagickExport double 43 | *GetImageChannelDistortions(Image *,const Image *,const MetricType, 44 | ExceptionInfo *); 45 | 46 | extern MagickExport Image 47 | *CompareImageChannels(Image *,const Image *,const ChannelType, 48 | const MetricType,double *,ExceptionInfo *), 49 | *CompareImages(Image *,const Image *,const MetricType,double *, 50 | ExceptionInfo *), 51 | *SimilarityImage(Image *,const Image *,RectangleInfo *,double *, 52 | ExceptionInfo *), 53 | *SimilarityMetricImage(Image *,const Image *,const MetricType, 54 | RectangleInfo *,double *,ExceptionInfo *); 55 | 56 | extern MagickExport MagickBooleanType 57 | GetImageChannelDistortion(Image *,const Image *,const ChannelType, 58 | const MetricType,double *,ExceptionInfo *), 59 | GetImageDistortion(Image *,const Image *,const MetricType,double *, 60 | ExceptionInfo *), 61 | IsImagesEqual(Image *,const Image *); 62 | 63 | #if defined(__cplusplus) || defined(c_plusplus) 64 | } 65 | #endif 66 | 67 | #endif 68 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/compress.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore image compression/decompression methods. 17 | */ 18 | #ifndef _MAGICKCORE_COMPRESS_H 19 | #define _MAGICKCORE_COMPRESS_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | typedef enum 26 | { 27 | UndefinedCompression, 28 | NoCompression, 29 | BZipCompression, 30 | DXT1Compression, 31 | DXT3Compression, 32 | DXT5Compression, 33 | FaxCompression, 34 | Group4Compression, 35 | JPEGCompression, 36 | JPEG2000Compression, /* ISO/IEC std 15444-1 */ 37 | LosslessJPEGCompression, 38 | LZWCompression, 39 | RLECompression, 40 | ZipCompression, 41 | ZipSCompression, 42 | PizCompression, 43 | Pxr24Compression, 44 | B44Compression, 45 | B44ACompression, 46 | LZMACompression, /* Lempel-Ziv-Markov chain algorithm */ 47 | JBIG1Compression, /* ISO/IEC std 11544 / ITU-T rec T.82 */ 48 | JBIG2Compression /* ISO/IEC std 14492 / ITU-T rec T.88 */ 49 | } CompressionType; 50 | 51 | typedef struct _Ascii85Info 52 | Ascii85Info; 53 | 54 | extern MagickExport MagickBooleanType 55 | HuffmanDecodeImage(Image *), 56 | HuffmanEncodeImage(const ImageInfo *,Image *,Image *), 57 | LZWEncodeImage(Image *,const size_t,unsigned char *), 58 | PackbitsEncodeImage(Image *,const size_t,unsigned char *), 59 | ZLIBEncodeImage(Image *,const size_t,unsigned char *); 60 | 61 | extern MagickExport void 62 | Ascii85Encode(Image *,const unsigned char), 63 | Ascii85Flush(Image *), 64 | Ascii85Initialize(Image *); 65 | 66 | #if defined(__cplusplus) || defined(c_plusplus) 67 | } 68 | #endif 69 | 70 | #endif 71 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/configure.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore configure methods. 17 | */ 18 | #ifndef _MAGICKCORE_CONFIGURE_H 19 | #define _MAGICKCORE_CONFIGURE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #include "hashmap.h" 26 | 27 | typedef struct _ConfigureInfo 28 | { 29 | char 30 | *path, 31 | *name, 32 | *value; 33 | 34 | MagickBooleanType 35 | exempt, 36 | stealth; 37 | 38 | struct _ConfigureInfo 39 | *previous, 40 | *next; /* deprecated, use GetConfigureInfoList() */ 41 | 42 | size_t 43 | signature; 44 | } ConfigureInfo; 45 | 46 | extern MagickExport char 47 | **GetConfigureList(const char *,size_t *,ExceptionInfo *), 48 | *GetConfigureOption(const char *); 49 | 50 | extern MagickExport const char 51 | *GetConfigureValue(const ConfigureInfo *); 52 | 53 | extern MagickExport const ConfigureInfo 54 | *GetConfigureInfo(const char *,ExceptionInfo *), 55 | **GetConfigureInfoList(const char *,size_t *,ExceptionInfo *); 56 | 57 | extern MagickExport LinkedListInfo 58 | *DestroyConfigureOptions(LinkedListInfo *), 59 | *GetConfigurePaths(const char *,ExceptionInfo *), 60 | *GetConfigureOptions(const char *,ExceptionInfo *); 61 | 62 | extern MagickExport MagickBooleanType 63 | ConfigureComponentGenesis(void), 64 | ListConfigureInfo(FILE *,ExceptionInfo *); 65 | 66 | extern MagickExport void 67 | ConfigureComponentTerminus(void); 68 | 69 | #if defined(__cplusplus) || defined(c_plusplus) 70 | } 71 | #endif 72 | 73 | #endif 74 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/constitute.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore image constitute methods. 17 | */ 18 | #ifndef _MAGICKCORE_CONSTITUTE_H 19 | #define _MAGICKCORE_CONSTITUTE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | typedef enum 26 | { 27 | UndefinedPixel, 28 | CharPixel, 29 | DoublePixel, 30 | FloatPixel, 31 | IntegerPixel, 32 | LongPixel, 33 | QuantumPixel, 34 | ShortPixel 35 | } StorageType; 36 | 37 | extern MagickExport Image 38 | *ConstituteImage(const size_t,const size_t,const char *,const StorageType, 39 | const void *,ExceptionInfo *), 40 | *PingImage(const ImageInfo *,ExceptionInfo *), 41 | *PingImages(const ImageInfo *,ExceptionInfo *), 42 | *ReadImage(const ImageInfo *,ExceptionInfo *), 43 | *ReadImages(const ImageInfo *,ExceptionInfo *), 44 | *ReadInlineImage(const ImageInfo *,const char *,ExceptionInfo *); 45 | 46 | extern MagickExport MagickBooleanType 47 | ConstituteComponentGenesis(void), 48 | WriteImage(const ImageInfo *,Image *), 49 | WriteImages(const ImageInfo *,Image *,const char *,ExceptionInfo *); 50 | 51 | extern MagickExport void 52 | ConstituteComponentTerminus(void); 53 | 54 | #if defined(__cplusplus) || defined(c_plusplus) 55 | } 56 | #endif 57 | 58 | #endif 59 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/decorate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore image decorate methods. 17 | */ 18 | #ifndef _MAGICKCORE_DECORATE_H 19 | #define _MAGICKCORE_DECORATE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | typedef struct _FrameInfo 26 | { 27 | size_t 28 | width, 29 | height; 30 | 31 | ssize_t 32 | x, 33 | y, 34 | inner_bevel, 35 | outer_bevel; 36 | } FrameInfo; 37 | 38 | extern MagickExport Image 39 | *BorderImage(const Image *,const RectangleInfo *,ExceptionInfo *), 40 | *FrameImage(const Image *,const FrameInfo *,ExceptionInfo *); 41 | 42 | extern MagickExport MagickBooleanType 43 | RaiseImage(Image *,const RectangleInfo *,const MagickBooleanType); 44 | 45 | #if defined(__cplusplus) || defined(c_plusplus) 46 | } 47 | #endif 48 | 49 | #endif 50 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/delegate-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore delegates private methods. 17 | */ 18 | #ifndef _MAGICKCORE_DELEGATE_PRIVATE_H 19 | #define _MAGICKCORE_DELEGATE_PRIVATE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #if defined(MAGICKCORE_GS_DELEGATE) 26 | #include "ghostscript/iapi.h" 27 | #include "ghostscript/ierrors.h" 28 | #endif 29 | 30 | #ifndef gs_main_instance_DEFINED 31 | # define gs_main_instance_DEFINED 32 | typedef struct gs_main_instance_s 33 | gs_main_instance; 34 | #endif 35 | 36 | #if !defined(MagickDLLCall) 37 | # if defined(MAGICKCORE_WINDOWS_SUPPORT) 38 | # define MagickDLLCall __stdcall 39 | # else 40 | # define MagickDLLCall 41 | # endif 42 | #endif 43 | 44 | typedef struct _GhostInfo 45 | { 46 | int 47 | (MagickDLLCall *exit)(gs_main_instance *); 48 | 49 | int 50 | (MagickDLLCall *init_with_args)(gs_main_instance *,int,char **); 51 | 52 | int 53 | (MagickDLLCall *new_instance)(gs_main_instance **,void *); 54 | 55 | int 56 | (MagickDLLCall *run_string)(gs_main_instance *,const char *,int,int *); 57 | 58 | void 59 | (MagickDLLCall *delete_instance)(gs_main_instance *); 60 | } GhostInfo; 61 | 62 | #if defined(__cplusplus) || defined(c_plusplus) 63 | } 64 | #endif 65 | 66 | #endif 67 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/display-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore methods to interactively display and edit an image. 17 | */ 18 | #ifndef _MAGICKCORE_DISPLAY_PRIVATE_H 19 | #define _MAGICKCORE_DISPLAY_PRIVATE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #if defined(MAGICKCORE_X11_DELEGATE) 26 | #include "magick/xwindow-private.h" 27 | 28 | extern MagickExport Image 29 | *XDisplayImage(Display *,XResourceInfo *,char **,int,Image **,size_t *); 30 | 31 | extern MagickExport MagickBooleanType XDisplayBackgroundImage(Display *, 32 | XResourceInfo *,Image *); 33 | #endif 34 | 35 | #if defined(__cplusplus) || defined(c_plusplus) 36 | } 37 | #endif 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/display.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore methods to interactively display and edit an image. 17 | */ 18 | #ifndef _MAGICKCORE_DISPLAY_H 19 | #define _MAGICKCORE_DISPLAY_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | extern MagickExport MagickBooleanType 26 | DisplayImages(const ImageInfo *,Image *), 27 | RemoteDisplayCommand(const ImageInfo *,const char *,const char *, 28 | ExceptionInfo *); 29 | 30 | #if defined(__cplusplus) || defined(c_plusplus) 31 | } 32 | #endif 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/distribute-cache.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore distributed cache methods. 17 | */ 18 | #ifndef _MAGICKCORE_DISTRIBUTE_CACHE_H 19 | #define _MAGICKCORE_DISTRIBUTE_CACHE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #include "exception.h" 26 | 27 | extern MagickExport void 28 | DistributePixelCacheServer(const int,ExceptionInfo *); 29 | 30 | #if defined(__cplusplus) || defined(c_plusplus) 31 | } 32 | #endif 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/draw-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore private image drawing methods. 17 | */ 18 | #ifndef _MAGICKCORE_DRAW_PRIVATE_H 19 | #define _MAGICKCORE_DRAW_PRIVATE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #include "magick/cache.h" 26 | #include "magick/image.h" 27 | #include "magick/memory_.h" 28 | 29 | static inline MagickBooleanType GetFillColor(const DrawInfo *draw_info, 30 | const ssize_t x,const ssize_t y,PixelPacket *pixel) 31 | { 32 | Image 33 | *pattern; 34 | 35 | MagickBooleanType 36 | status; 37 | 38 | pattern=draw_info->fill_pattern; 39 | if (pattern == (Image *) NULL) 40 | { 41 | *pixel=draw_info->fill; 42 | return(MagickTrue); 43 | } 44 | status=GetOneVirtualMethodPixel(pattern,TileVirtualPixelMethod, 45 | x+pattern->tile_offset.x,y+pattern->tile_offset.y,pixel, 46 | &pattern->exception); 47 | if (pattern->matte == MagickFalse) 48 | pixel->opacity=OpaqueOpacity; 49 | return(status); 50 | } 51 | 52 | static inline MagickBooleanType GetStrokeColor(const DrawInfo *draw_info, 53 | const ssize_t x,const ssize_t y,PixelPacket *pixel) 54 | { 55 | Image 56 | *pattern; 57 | 58 | MagickBooleanType 59 | status; 60 | 61 | pattern=draw_info->stroke_pattern; 62 | if (pattern == (Image *) NULL) 63 | { 64 | *pixel=draw_info->stroke; 65 | return(MagickTrue); 66 | } 67 | status=GetOneVirtualMethodPixel(pattern,TileVirtualPixelMethod, 68 | x+pattern->tile_offset.x,y+pattern->tile_offset.y,pixel, 69 | &pattern->exception); 70 | if (pattern->matte == MagickFalse) 71 | pixel->opacity=OpaqueOpacity; 72 | return(status); 73 | } 74 | 75 | #if defined(__cplusplus) || defined(c_plusplus) 76 | } 77 | #endif 78 | 79 | #endif 80 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/feature.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore feature methods. 17 | */ 18 | #ifndef _MAGICKCORE_FEATURE_H 19 | #define _MAGICKCORE_FEATURE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | /* 26 | Haralick texture features. 27 | */ 28 | typedef struct _ChannelFeatures 29 | { 30 | double 31 | angular_second_moment[4], 32 | contrast[4], 33 | correlation[4], 34 | variance_sum_of_squares[4], 35 | inverse_difference_moment[4], 36 | sum_average[4], 37 | sum_variance[4], 38 | sum_entropy[4], 39 | entropy[4], 40 | difference_variance[4], 41 | difference_entropy[4], 42 | measure_of_correlation_1[4], 43 | measure_of_correlation_2[4], 44 | maximum_correlation_coefficient[4]; 45 | } ChannelFeatures; 46 | 47 | extern MagickExport ChannelFeatures 48 | *GetImageChannelFeatures(const Image *,const size_t,ExceptionInfo *); 49 | 50 | #if defined(__cplusplus) || defined(c_plusplus) 51 | } 52 | #endif 53 | 54 | #endif 55 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/fourier.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore discrete Fourier transform (DFT) methods. 17 | */ 18 | #ifndef _MAGICKCORE_FFT_H 19 | #define _MAGICKCORE_FFT_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | typedef enum 26 | { 27 | UndefinedComplexOperator, 28 | AddComplexOperator, 29 | ConjugateComplexOperator, 30 | DivideComplexOperator, 31 | MagnitudePhaseComplexOperator, 32 | MultiplyComplexOperator, 33 | RealImaginaryComplexOperator, 34 | SubtractComplexOperator 35 | } ComplexOperator; 36 | 37 | extern MagickExport Image 38 | *ComplexImages(const Image *,const ComplexOperator,ExceptionInfo *), 39 | *ForwardFourierTransformImage(const Image *,const MagickBooleanType, 40 | ExceptionInfo *), 41 | *InverseFourierTransformImage(const Image *,const Image *, 42 | const MagickBooleanType,ExceptionInfo *); 43 | 44 | #if defined(__cplusplus) || defined(c_plusplus) 45 | } 46 | #endif 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/fx-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore private image f/x methods. 17 | */ 18 | #ifndef _MAGICKCORE_FX_PRIVATE_H 19 | #define _MAGICKCORE_FX_PRIVATE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | typedef struct _FxInfo 26 | FxInfo; 27 | 28 | extern MagickExport FxInfo 29 | *AcquireFxInfo(const Image *,const char *), 30 | *DestroyFxInfo(FxInfo *); 31 | 32 | extern MagickExport MagickBooleanType 33 | FxEvaluateExpression(FxInfo *,MagickRealType *,ExceptionInfo *), 34 | FxEvaluateChannelExpression(FxInfo *,const ChannelType,const ssize_t, 35 | const ssize_t,MagickRealType *,ExceptionInfo *); 36 | 37 | #if defined(__cplusplus) || defined(c_plusplus) 38 | } 39 | #endif 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/histogram.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore histogram methods. 17 | */ 18 | #ifndef _MAGICKCORE_HISTOGRAM_H 19 | #define _MAGICKCORE_HISTOGRAM_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | typedef struct _ColorPacket 26 | { 27 | PixelPacket 28 | pixel; 29 | 30 | IndexPacket 31 | index; 32 | 33 | MagickSizeType 34 | count; 35 | } ColorPacket; 36 | 37 | extern MagickExport ColorPacket 38 | *GetImageHistogram(const Image *,size_t *,ExceptionInfo *); 39 | 40 | extern MagickExport Image 41 | *UniqueImageColors(const Image *,ExceptionInfo *); 42 | 43 | extern MagickExport MagickBooleanType 44 | IsHistogramImage(const Image *,ExceptionInfo *), 45 | IsPaletteImage(const Image *,ExceptionInfo *), 46 | MinMaxStretchImage(Image *,const ChannelType,const double,const double); 47 | 48 | extern MagickExport size_t 49 | GetNumberColors(const Image *,FILE *,ExceptionInfo *); 50 | 51 | #if defined(__cplusplus) || defined(c_plusplus) 52 | } 53 | #endif 54 | 55 | #endif 56 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/identify.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore image identify method. 17 | */ 18 | #ifndef _MAGICKCORE_IDENTIFY_H 19 | #define _MAGICKCORE_IDENTIFY_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | extern MagickExport MagickBooleanType 26 | IdentifyImage(Image *,FILE *,const MagickBooleanType); 27 | 28 | #if defined(__cplusplus) || defined(c_plusplus) 29 | } 30 | #endif 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/layer.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore image layer methods. 17 | */ 18 | #ifndef _MAGICKCORE_LAYER_H 19 | #define _MAGICKCORE_LAYER_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | typedef enum 26 | { 27 | UnrecognizedDispose, 28 | UndefinedDispose = 0, 29 | NoneDispose = 1, 30 | BackgroundDispose = 2, 31 | PreviousDispose = 3 32 | } DisposeType; 33 | 34 | typedef enum 35 | { 36 | UndefinedLayer, 37 | CoalesceLayer, 38 | CompareAnyLayer, 39 | CompareClearLayer, 40 | CompareOverlayLayer, 41 | DisposeLayer, 42 | OptimizeLayer, 43 | OptimizeImageLayer, 44 | OptimizePlusLayer, 45 | OptimizeTransLayer, 46 | RemoveDupsLayer, 47 | RemoveZeroLayer, 48 | CompositeLayer, 49 | MergeLayer, 50 | FlattenLayer, 51 | MosaicLayer, 52 | TrimBoundsLayer 53 | } ImageLayerMethod; 54 | 55 | extern MagickExport Image 56 | *CoalesceImages(const Image *,ExceptionInfo *), 57 | *DisposeImages(const Image *,ExceptionInfo *), 58 | *CompareImageLayers(const Image *,const ImageLayerMethod,ExceptionInfo *), 59 | *DeconstructImages(const Image *,ExceptionInfo *), 60 | *MergeImageLayers(Image *,const ImageLayerMethod,ExceptionInfo *), 61 | *OptimizeImageLayers(const Image *,ExceptionInfo *), 62 | *OptimizePlusImageLayers(const Image *,ExceptionInfo *); 63 | 64 | extern MagickExport void 65 | CompositeLayers(Image *,const CompositeOperator,Image *,const ssize_t, 66 | const ssize_t,ExceptionInfo *), 67 | OptimizeImageTransparency(const Image *,ExceptionInfo *), 68 | RemoveDuplicateLayers(Image **,ExceptionInfo *), 69 | RemoveZeroDelayLayers(Image **,ExceptionInfo *); 70 | 71 | #if defined(__cplusplus) || defined(c_plusplus) 72 | } 73 | #endif 74 | 75 | #endif 76 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/list.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore image list methods. 17 | */ 18 | #ifndef _MAGICKCORE_LIST_H 19 | #define _MAGICKCORE_LIST_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | extern MagickExport Image 26 | *CloneImageList(const Image *,ExceptionInfo *), 27 | *CloneImages(const Image *,const char *,ExceptionInfo *), 28 | *DestroyImageList(Image *), 29 | *DuplicateImages(Image *,const size_t,const char *,ExceptionInfo *), 30 | *GetFirstImageInList(const Image *), 31 | *GetImageFromList(const Image *,const ssize_t), 32 | *GetLastImageInList(const Image *), 33 | *GetNextImageInList(const Image *), 34 | *GetPreviousImageInList(const Image *), 35 | **ImageListToArray(const Image *,ExceptionInfo *), 36 | *NewImageList(void), 37 | *RemoveImageFromList(Image **), 38 | *RemoveLastImageFromList(Image **), 39 | *RemoveFirstImageFromList(Image **), 40 | *SpliceImageIntoList(Image **,const size_t,const Image *), 41 | *SplitImageList(Image *), 42 | *SyncNextImageInList(const Image *); 43 | 44 | extern MagickExport size_t 45 | GetImageListLength(const Image *); 46 | 47 | extern MagickExport ssize_t 48 | GetImageIndexInList(const Image *); 49 | 50 | extern MagickExport void 51 | AppendImageToList(Image **,const Image *), 52 | DeleteImageFromList(Image **), 53 | DeleteImages(Image **,const char *,ExceptionInfo *), 54 | InsertImageInList(Image **,Image *), 55 | PrependImageToList(Image **,Image *), 56 | ReplaceImageInList(Image **,Image *), 57 | ReplaceImageInListReturnLast(Image **,Image *), 58 | ReverseImageList(Image **), 59 | SyncImageList(Image *); 60 | 61 | #if defined(__cplusplus) || defined(c_plusplus) 62 | } 63 | #endif 64 | 65 | #endif 66 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/magic.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore magic methods. 17 | */ 18 | #ifndef _MAGICKCORE_MAGIC_H 19 | #define _MAGICKCORE_MAGIC_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | typedef struct _MagicInfo 26 | { 27 | char 28 | *path, 29 | *name, 30 | *target; 31 | 32 | unsigned char 33 | *magic; 34 | 35 | size_t 36 | length; 37 | 38 | MagickOffsetType 39 | offset; 40 | 41 | MagickBooleanType 42 | exempt, 43 | stealth; 44 | 45 | struct _MagicInfo 46 | *previous, 47 | *next; /* deprecated, use GetMagicInfoList() */ 48 | 49 | size_t 50 | signature; 51 | } MagicInfo; 52 | 53 | extern MagickExport char 54 | **GetMagicList(const char *,size_t *,ExceptionInfo *); 55 | 56 | extern MagickExport const char 57 | *GetMagicName(const MagicInfo *); 58 | 59 | extern MagickExport MagickBooleanType 60 | ListMagicInfo(FILE *,ExceptionInfo *), 61 | MagicComponentGenesis(void); 62 | 63 | extern MagickExport const MagicInfo 64 | *GetMagicInfo(const unsigned char *,const size_t,ExceptionInfo *), 65 | **GetMagicInfoList(const char *,size_t *,ExceptionInfo *); 66 | 67 | extern MagickExport void 68 | MagicComponentTerminus(void); 69 | 70 | #if defined(__cplusplus) || defined(c_plusplus) 71 | } 72 | #endif 73 | 74 | #endif 75 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/matrix.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore graphic resample methods. 17 | */ 18 | #ifndef _MAGICKCORE_MATRIX_H 19 | #define _MAGICKCORE_MATRIX_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | extern MagickExport double 26 | **AcquireMagickMatrix(const size_t,const size_t), 27 | **RelinquishMagickMatrix(double **,const size_t); 28 | 29 | extern MagickExport MagickBooleanType 30 | GaussJordanElimination(double **,double **,const size_t,const size_t); 31 | 32 | extern MagickExport void 33 | LeastSquaresAddTerms(double **,double **,const double *,const double *, 34 | const size_t, const size_t); 35 | 36 | #if defined(__cplusplus) || defined(c_plusplus) 37 | } 38 | #endif 39 | 40 | #endif 41 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/memory-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore private memory methods. 17 | */ 18 | #ifndef _MAGICKCORE_MEMORY_PRIVATE_H 19 | #define _MAGICKCORE_MEMORY_PRIVATE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #if defined(MAGICK_TARGET_CPU) && (MAGICK_TARGET_CPU == powerpc) 26 | # define CACHE_LINE_SIZE 128 27 | #else 28 | # define CACHE_LINE_SIZE 64 29 | #endif 30 | 31 | #define CacheAlign(size) ((size) < CACHE_LINE_SIZE ? CACHE_LINE_SIZE : (size)) 32 | 33 | #if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 6)) 34 | #if !defined(__ICC) 35 | #define MagickAssumeAligned(address) \ 36 | __builtin_assume_aligned((address),CACHE_LINE_SIZE) 37 | #else 38 | #define MagickAssumeAligned(address) (address) 39 | #endif 40 | #else 41 | #define MagickAssumeAligned(address) (address) 42 | #endif 43 | 44 | #if defined(__cplusplus) || defined(c_plusplus) 45 | } 46 | #endif 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/mime-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | The ImageMagick mime private methods. 17 | */ 18 | #ifndef _MAGICK_MIME_PRIVATE_H 19 | #define _MAGICK_MIME_PRIVATE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | typedef enum 26 | { 27 | UndefinedData, 28 | StringData, 29 | ByteData, 30 | ShortData, 31 | LongData 32 | } DataType; 33 | 34 | #if defined(__cplusplus) || defined(c_plusplus) 35 | } 36 | #endif 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/mime.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | The ImageMagick mime methods. 17 | */ 18 | #ifndef _MIME_MIME_H 19 | #define _MIME_MIME_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | typedef struct _MimeInfo 26 | MimeInfo; 27 | 28 | extern MagickExport char 29 | **GetMimeList(const char *,size_t *,ExceptionInfo *), 30 | *MagickToMime(const char *); 31 | 32 | extern MagickExport const char 33 | *GetMimeDescription(const MimeInfo *), 34 | *GetMimeType(const MimeInfo *); 35 | 36 | extern MagickExport MagickBooleanType 37 | ListMimeInfo(FILE *,ExceptionInfo *), 38 | LoadMimeLists(const char *,ExceptionInfo *), 39 | MimeComponentGenesis(void); 40 | 41 | extern MagickExport const MimeInfo 42 | *GetMimeInfo(const char *,const unsigned char *,const size_t,ExceptionInfo *), 43 | **GetMimeInfoList(const char *,size_t *,ExceptionInfo *); 44 | 45 | extern MagickExport void 46 | MimeComponentTerminus(void); 47 | 48 | #if defined(__cplusplus) || defined(c_plusplus) 49 | } 50 | #endif 51 | 52 | #endif 53 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/monitor-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | The ImageMagick progress monitor private methods. 17 | */ 18 | #ifndef _MAGICK_MONITOR_PRIVATE_H 19 | #define _MAGICK_MONITOR_PRIVATE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #include "magick/image.h" 26 | 27 | static inline MagickBooleanType SetImageProgress(const Image *image, 28 | const char *tag,const MagickOffsetType offset,const MagickSizeType extent) 29 | { 30 | char 31 | message[MaxTextExtent]; 32 | 33 | if (image->progress_monitor == (MagickProgressMonitor) NULL) 34 | return(MagickTrue); 35 | (void) FormatLocaleString(message,MaxTextExtent,"%s/%s",tag,image->filename); 36 | return(image->progress_monitor(message,offset,extent,image->client_data)); 37 | } 38 | 39 | #if defined(__cplusplus) || defined(c_plusplus) 40 | } 41 | #endif 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/monitor.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore progress monitor methods. 17 | */ 18 | #ifndef _MAGICKCORE_MONITOR_H 19 | #define _MAGICKCORE_MONITOR_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | typedef MagickBooleanType 26 | (*MagickProgressMonitor)(const char *,const MagickOffsetType, 27 | const MagickSizeType,void *); 28 | 29 | MagickExport MagickProgressMonitor 30 | SetImageProgressMonitor(Image *,const MagickProgressMonitor,void *), 31 | SetImageInfoProgressMonitor(ImageInfo *,const MagickProgressMonitor,void *); 32 | 33 | static inline MagickBooleanType QuantumTick(const MagickOffsetType offset, 34 | const MagickSizeType span) 35 | { 36 | if (span <= 100) 37 | return(MagickTrue); 38 | if (offset == (MagickOffsetType) (span-1)) 39 | return(MagickTrue); 40 | if ((offset % (span/100)) == 0) 41 | return(MagickTrue); 42 | return(MagickFalse); 43 | } 44 | 45 | #if defined(__cplusplus) || defined(c_plusplus) 46 | } 47 | #endif 48 | 49 | #endif 50 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/montage.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore montage methods. 17 | */ 18 | #ifndef _MAGICKCORE_MONTAGE_H 19 | #define _MAGICKCORE_MONTAGE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | typedef enum 26 | { 27 | UndefinedMode, 28 | FrameMode, 29 | UnframeMode, 30 | ConcatenateMode 31 | } MontageMode; 32 | 33 | typedef struct _MontageInfo 34 | { 35 | char 36 | *geometry, 37 | *tile, 38 | *title, 39 | *frame, 40 | *texture, 41 | *font; 42 | 43 | double 44 | pointsize; 45 | 46 | size_t 47 | border_width; 48 | 49 | MagickBooleanType 50 | shadow; 51 | 52 | PixelPacket 53 | fill, 54 | stroke, 55 | background_color, 56 | border_color, 57 | matte_color; 58 | 59 | GravityType 60 | gravity; 61 | 62 | char 63 | filename[MaxTextExtent]; 64 | 65 | MagickBooleanType 66 | debug; 67 | 68 | size_t 69 | signature; 70 | } MontageInfo; 71 | 72 | extern MagickExport Image 73 | *MontageImages(const Image *,const MontageInfo *,ExceptionInfo *), 74 | *MontageImageList(const ImageInfo *,const MontageInfo *,const Image *, 75 | ExceptionInfo *); 76 | 77 | extern MagickExport MontageInfo 78 | *CloneMontageInfo(const ImageInfo *,const MontageInfo *), 79 | *DestroyMontageInfo(MontageInfo *); 80 | 81 | extern MagickExport void 82 | GetMontageInfo(const ImageInfo *,MontageInfo *); 83 | 84 | #if defined(__cplusplus) || defined(c_plusplus) 85 | } 86 | #endif 87 | 88 | #endif 89 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/morphology-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | The ImageMagick morphology private methods. 17 | */ 18 | #ifndef _MAGICK_MORPHOLOGY_PRIVATE_H 19 | #define _MAGICK_MORPHOLOGY_PRIVATE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #if defined(__cplusplus) || defined(c_plusplus) 26 | } 27 | #endif 28 | 29 | #include "magick/morphology.h" 30 | 31 | extern MagickExport Image 32 | *MorphologyApply(const Image *,const ChannelType,const MorphologyMethod, 33 | const ssize_t,const KernelInfo *,const CompositeOperator,const double, 34 | ExceptionInfo *); 35 | 36 | extern MagickExport void 37 | ScaleKernelInfo(KernelInfo *,const double,const GeometryFlags), 38 | UnityAddKernelInfo(KernelInfo *,const double), 39 | ZeroKernelNans(KernelInfo *); 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/nt-feature.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore Windows NT utility methods. 17 | */ 18 | #ifndef _MAGICKCORE_NT_FEATURE_H 19 | #define _MAGICKCORE_NT_FEATURE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #include "magick/splay-tree.h" 26 | 27 | extern MagickExport void 28 | *CropImageToHBITMAP(Image *,const RectangleInfo *,ExceptionInfo *), 29 | *ImageToHBITMAP(Image *); 30 | 31 | #if !defined(XS_VERSION) 32 | 33 | extern MagickExport MagickBooleanType 34 | NTIsMagickConflict(const char *), 35 | NTLoadTypeLists(SplayTreeInfo *,ExceptionInfo *); 36 | 37 | #endif 38 | 39 | #if defined(__cplusplus) || defined(c_plusplus) 40 | } 41 | #endif 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/opencl.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore OpenCL public methods. 17 | */ 18 | #ifndef _MAGICKCORE_OPENCL_H 19 | #define _MAGICKCORE_OPENCL_H 20 | 21 | 22 | #if defined(__cplusplus) || defined(c_plusplus) 23 | extern "C" { 24 | #endif 25 | 26 | // OpenCL program modules 27 | typedef enum { 28 | MAGICK_OPENCL_ACCELERATE = 0 29 | ,MAGICK_OPENCL_NUM_PROGRAMS /* !!! This has to be the last entry !!! */ 30 | } MagickOpenCLProgram; 31 | 32 | 33 | typedef struct _MagickCLEnv* MagickCLEnv; 34 | 35 | extern MagickExport 36 | MagickCLEnv AcquireMagickOpenCLEnv(); 37 | 38 | extern MagickExport 39 | MagickBooleanType RelinquishMagickOpenCLEnv(MagickCLEnv); 40 | 41 | extern MagickExport 42 | MagickCLEnv GetDefaultOpenCLEnv(); 43 | 44 | extern MagickExport 45 | MagickCLEnv SetDefaultOpenCLEnv(MagickCLEnv); 46 | 47 | 48 | /* Parameter type accepted by SetMagickOpenCLEnvParm and GetMagickOpenCLEnvParm */ 49 | typedef enum { 50 | MAGICK_OPENCL_ENV_PARAM_DEVICE /* cl_device_id (from OpenCL) */ 51 | , MAGICK_OPENCL_ENV_PARAM_OPENCL_DISABLED /* MagickBooleanType */ 52 | , MAGICK_OPENCL_ENV_PARAM_OPENCL_INITIALIZED /* MagickBooleanType */ 53 | } MagickOpenCLEnvParam; 54 | 55 | extern MagickExport 56 | MagickBooleanType SetMagickOpenCLEnvParam(MagickCLEnv, MagickOpenCLEnvParam, size_t, void*, ExceptionInfo*); 57 | 58 | extern MagickExport 59 | MagickBooleanType GetMagickOpenCLEnvParam(MagickCLEnv, MagickOpenCLEnvParam, size_t, void*, ExceptionInfo*); 60 | 61 | 62 | extern MagickExport 63 | MagickBooleanType InitOpenCLEnv(MagickCLEnv, ExceptionInfo*); 64 | 65 | 66 | #if defined(__cplusplus) || defined(c_plusplus) 67 | } 68 | #endif 69 | 70 | #endif 71 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/paint.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore image paint methods. 17 | */ 18 | #ifndef _MAGICKCORE_PAINT_H 19 | #define _MAGICKCORE_PAINT_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #include "color.h" 26 | #include "draw.h" 27 | 28 | extern MagickExport Image 29 | *OilPaintImage(const Image *,const double,ExceptionInfo *); 30 | 31 | extern MagickExport MagickBooleanType 32 | FloodfillPaintImage(Image *,const ChannelType,const DrawInfo *, 33 | const MagickPixelPacket *,const ssize_t,const ssize_t, 34 | const MagickBooleanType), 35 | GradientImage(Image *,const GradientType,const SpreadMethod, 36 | const PixelPacket *,const PixelPacket *), 37 | OpaquePaintImage(Image *,const MagickPixelPacket *,const MagickPixelPacket *, 38 | const MagickBooleanType), 39 | OpaquePaintImageChannel(Image *,const ChannelType,const MagickPixelPacket *, 40 | const MagickPixelPacket *,const MagickBooleanType), 41 | TransparentPaintImage(Image *,const MagickPixelPacket *, 42 | const Quantum,const MagickBooleanType), 43 | TransparentPaintImageChroma(Image *,const MagickPixelPacket *, 44 | const MagickPixelPacket *,const Quantum,const MagickBooleanType); 45 | 46 | #if defined(__cplusplus) || defined(c_plusplus) 47 | } 48 | #endif 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/policy.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore image color methods. 17 | */ 18 | #ifndef _MAGICKCORE_POLICY_H 19 | #define _MAGICKCORE_POLICY_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #include "pixel.h" 26 | #include "exception.h" 27 | 28 | typedef enum 29 | { 30 | UndefinedPolicyDomain, 31 | CoderPolicyDomain, 32 | DelegatePolicyDomain, 33 | FilterPolicyDomain, 34 | PathPolicyDomain, 35 | ResourcePolicyDomain, 36 | SystemPolicyDomain 37 | } PolicyDomain; 38 | 39 | typedef enum 40 | { 41 | UndefinedPolicyRights = 0x00, 42 | NoPolicyRights = 0x00, 43 | ReadPolicyRights = 0x01, 44 | WritePolicyRights = 0x02, 45 | ExecutePolicyRights = 0x04 46 | } PolicyRights; 47 | 48 | typedef struct _PolicyInfo 49 | PolicyInfo; 50 | 51 | extern MagickExport char 52 | *GetPolicyValue(const char *name), 53 | **GetPolicyList(const char *,size_t *,ExceptionInfo *); 54 | 55 | extern MagickExport const PolicyInfo 56 | **GetPolicyInfoList(const char *,size_t *,ExceptionInfo *); 57 | 58 | extern MagickExport MagickBooleanType 59 | IsRightsAuthorized(const PolicyDomain,const PolicyRights,const char *), 60 | ListPolicyInfo(FILE *,ExceptionInfo *), 61 | PolicyComponentGenesis(void); 62 | 63 | extern MagickExport void 64 | PolicyComponentTerminus(void); 65 | 66 | #if defined(__cplusplus) || defined(c_plusplus) 67 | } 68 | #endif 69 | 70 | #endif 71 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/prepress.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore prepress methods. 17 | */ 18 | #ifndef _MAGICKCORE_PREPRESS_H 19 | #define _MAGICKCORE_PREPRESS_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | extern MagickExport double 26 | GetImageTotalInkDensity(Image *image); 27 | 28 | #if defined(__cplusplus) || defined(c_plusplus) 29 | } 30 | #endif 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/profile.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore image profile methods. 17 | */ 18 | #ifndef _MAGICKCORE_PROFILE_H 19 | #define _MAGICKCORE_PROFILE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #include "string_.h" 26 | 27 | typedef struct _ProfileInfo 28 | { 29 | char 30 | *name; 31 | 32 | size_t 33 | length; 34 | 35 | unsigned char 36 | *info; 37 | 38 | size_t 39 | signature; 40 | } ProfileInfo; 41 | 42 | typedef enum 43 | { 44 | UndefinedIntent, 45 | SaturationIntent, 46 | PerceptualIntent, 47 | AbsoluteIntent, 48 | RelativeIntent 49 | } RenderingIntent; 50 | 51 | extern MagickExport char 52 | *GetNextImageProfile(const Image *); 53 | 54 | extern MagickExport const StringInfo 55 | *GetImageProfile(const Image *,const char *); 56 | 57 | extern MagickExport MagickBooleanType 58 | CloneImageProfiles(Image *,const Image *), 59 | DeleteImageProfile(Image *,const char *), 60 | ProfileImage(Image *,const char *,const void *,const size_t, 61 | const MagickBooleanType), 62 | SetImageProfile(Image *,const char *,const StringInfo *), 63 | SyncImageProfiles(Image *); 64 | 65 | extern MagickExport StringInfo 66 | *RemoveImageProfile(Image *,const char *); 67 | 68 | extern MagickExport void 69 | DestroyImageProfiles(Image *), 70 | ResetImageProfileIterator(const Image *); 71 | 72 | #if defined(__cplusplus) || defined(c_plusplus) 73 | } 74 | #endif 75 | #endif 76 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/property.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore property methods. 17 | */ 18 | #ifndef _MAGICKCORE_PROPERTY_H 19 | #define _MAGICKCORE_PROPERTY_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | extern MagickExport char 26 | *GetNextImageProperty(const Image *), 27 | *InterpretImageProperties(const ImageInfo *,Image *,const char *), 28 | *RemoveImageProperty(Image *,const char *); 29 | 30 | extern MagickExport const char 31 | *GetImageProperty(const Image *,const char *), 32 | *GetMagickProperty(const ImageInfo *,Image *,const char *); 33 | 34 | extern MagickExport MagickBooleanType 35 | CloneImageProperties(Image *,const Image *), 36 | DefineImageProperty(Image *,const char *), 37 | DeleteImageProperty(Image *,const char *), 38 | FormatImageProperty(Image *,const char *,const char *,...) 39 | magick_attribute((__format__ (__printf__,3,4))), 40 | SetImageProperty(Image *,const char *,const char *); 41 | 42 | extern MagickExport void 43 | DestroyImageProperties(Image *), 44 | ResetImagePropertyIterator(const Image *); 45 | 46 | #if defined(__cplusplus) || defined(c_plusplus) 47 | } 48 | #endif 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/quantize.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore image quantization methods. 17 | */ 18 | #ifndef _MAGICKCORE_QUANTIZE_H 19 | #define _MAGICKCORE_QUANTIZE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #include "colorspace.h" 26 | 27 | typedef enum 28 | { 29 | UndefinedDitherMethod, 30 | NoDitherMethod, 31 | RiemersmaDitherMethod, 32 | FloydSteinbergDitherMethod 33 | } DitherMethod; 34 | 35 | typedef struct _QuantizeInfo 36 | { 37 | size_t 38 | number_colors; 39 | 40 | size_t 41 | tree_depth; 42 | 43 | MagickBooleanType 44 | dither; 45 | 46 | ColorspaceType 47 | colorspace; 48 | 49 | MagickBooleanType 50 | measure_error; 51 | 52 | size_t 53 | signature; 54 | 55 | DitherMethod 56 | dither_method; 57 | } QuantizeInfo; 58 | 59 | extern MagickExport MagickBooleanType 60 | CompressImageColormap(Image *), 61 | GetImageQuantizeError(Image *), 62 | PosterizeImage(Image *,const size_t,const MagickBooleanType), 63 | PosterizeImageChannel(Image *,const ChannelType,const size_t, 64 | const MagickBooleanType), 65 | QuantizeImage(const QuantizeInfo *,Image *), 66 | QuantizeImages(const QuantizeInfo *,Image *), 67 | RemapImage(const QuantizeInfo *,Image *,const Image *), 68 | RemapImages(const QuantizeInfo *,Image *,const Image *); 69 | 70 | extern MagickExport QuantizeInfo 71 | *AcquireQuantizeInfo(const ImageInfo *), 72 | *CloneQuantizeInfo(const QuantizeInfo *), 73 | *DestroyQuantizeInfo(QuantizeInfo *); 74 | 75 | extern MagickExport void 76 | GetQuantizeInfo(QuantizeInfo *); 77 | 78 | #if defined(__cplusplus) || defined(c_plusplus) 79 | } 80 | #endif 81 | 82 | #endif 83 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/random-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore random generation private methods. 17 | */ 18 | #ifndef _MAGICKCORE_RANDOM_PRIVATE_H 19 | #define _MAGICKCORE_RANDOM_PRIVATE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #include "magick/thread-private.h" 26 | 27 | static inline RandomInfo **DestroyRandomInfoThreadSet( 28 | RandomInfo **random_info) 29 | { 30 | register ssize_t 31 | i; 32 | 33 | assert(random_info != (RandomInfo **) NULL); 34 | for (i=0; i < (ssize_t) GetMagickResourceLimit(ThreadResource); i++) 35 | if (random_info[i] != (RandomInfo *) NULL) 36 | random_info[i]=DestroyRandomInfo(random_info[i]); 37 | return((RandomInfo **) RelinquishAlignedMemory(random_info)); 38 | } 39 | 40 | static inline RandomInfo **AcquireRandomInfoThreadSet(void) 41 | { 42 | register ssize_t 43 | i; 44 | 45 | RandomInfo 46 | **random_info; 47 | 48 | size_t 49 | number_threads; 50 | 51 | number_threads=(size_t) GetMagickResourceLimit(ThreadResource); 52 | random_info=(RandomInfo **) AcquireAlignedMemory(number_threads, 53 | sizeof(*random_info)); 54 | if (random_info == (RandomInfo **) NULL) 55 | return((RandomInfo **) NULL); 56 | (void) ResetMagickMemory(random_info,0,number_threads*sizeof(*random_info)); 57 | for (i=0; i < (ssize_t) number_threads; i++) 58 | { 59 | random_info[i]=AcquireRandomInfo(); 60 | if (random_info[i] == (RandomInfo *) NULL) 61 | return(DestroyRandomInfoThreadSet(random_info)); 62 | } 63 | return(random_info); 64 | } 65 | 66 | #if defined(__cplusplus) || defined(c_plusplus) 67 | } 68 | #endif 69 | 70 | #endif 71 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/random_.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore random methods. 17 | */ 18 | #ifndef _MAGICKCORE_RANDOM__H 19 | #define _MAGICKCORE_RANDOM__H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #include "string_.h" 26 | 27 | /* 28 | Typedef declarations. 29 | */ 30 | typedef struct _RandomInfo 31 | RandomInfo; 32 | 33 | /* 34 | Method declarations. 35 | */ 36 | extern MagickExport double 37 | GetRandomValue(RandomInfo *), 38 | GetPseudoRandomValue(RandomInfo *); 39 | 40 | extern MagickExport MagickBooleanType 41 | RandomComponentGenesis(void); 42 | 43 | extern MagickExport RandomInfo 44 | *AcquireRandomInfo(void), 45 | *DestroyRandomInfo(RandomInfo *); 46 | 47 | extern MagickExport StringInfo 48 | *GetRandomKey(RandomInfo *,const size_t); 49 | 50 | extern MagickExport unsigned long 51 | GetRandomSecretKey(const RandomInfo *); 52 | 53 | extern MagickExport void 54 | RandomComponentTerminus(void), 55 | SeedPseudoRandomGenerator(const unsigned long), 56 | SetRandomKey(RandomInfo *,const size_t,unsigned char *), 57 | SetRandomSecretKey(const unsigned long), 58 | SetRandomTrueRandom(const MagickBooleanType); 59 | 60 | #if defined(__cplusplus) || defined(c_plusplus) 61 | } 62 | #endif 63 | 64 | #endif 65 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/registry.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore registry methods. 17 | */ 18 | #ifndef _MAGICKCORE_REGISTRY_H 19 | #define _MAGICKCORE_REGISTRY_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | typedef enum 26 | { 27 | UndefinedRegistryType, 28 | ImageRegistryType, 29 | ImageInfoRegistryType, 30 | StringRegistryType 31 | } RegistryType; 32 | 33 | extern MagickExport char 34 | *GetNextImageRegistry(void); 35 | 36 | extern MagickExport MagickBooleanType 37 | DefineImageRegistry(const RegistryType,const char *,ExceptionInfo *), 38 | DeleteImageRegistry(const char *), 39 | RegistryComponentGenesis(void), 40 | SetImageRegistry(const RegistryType,const char *,const void *, 41 | ExceptionInfo *); 42 | 43 | extern MagickExport void 44 | *GetImageRegistry(const RegistryType,const char *,ExceptionInfo *), 45 | RegistryComponentTerminus(void), 46 | *RemoveImageRegistry(const char *), 47 | ResetImageRegistryIterator(void); 48 | 49 | #if defined(__cplusplus) || defined(c_plusplus) 50 | } 51 | #endif 52 | 53 | #endif 54 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/resize-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore image resize private methods. 17 | */ 18 | #ifndef _MAGICKCORE_RESIZE_PRIVATE_H 19 | #define _MAGICKCORE_RESIZE_PRIVATE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | typedef enum 26 | { 27 | BoxWeightingFunction = 0, 28 | TriangleWeightingFunction, 29 | CubicBCWeightingFunction, 30 | HanningWeightingFunction, 31 | HammingWeightingFunction, 32 | BlackmanWeightingFunction, 33 | GaussianWeightingFunction, 34 | QuadraticWeightingFunction, 35 | JincWeightingFunction, 36 | SincWeightingFunction, 37 | SincFastWeightingFunction, 38 | KaiserWeightingFunction, 39 | WelshWeightingFunction, 40 | BohmanWeightingFunction, 41 | LagrangeWeightingFunction, 42 | CosineWeightingFunction, 43 | LastWeightingFunction 44 | } ResizeWeightingFunctionType; 45 | 46 | extern MagickExport MagickRealType 47 | *GetResizeFilterCoefficient(const ResizeFilter*), 48 | GetResizeFilterBlur(const ResizeFilter *), 49 | GetResizeFilterScale(const ResizeFilter *), 50 | GetResizeFilterWindowSupport(const ResizeFilter *), 51 | GetResizeFilterSupport(const ResizeFilter *), 52 | GetResizeFilterWeight(const ResizeFilter *,const MagickRealType); 53 | 54 | extern MagickExport ResizeFilter 55 | *AcquireResizeFilter(const Image *,const FilterTypes,const MagickRealType, 56 | const MagickBooleanType,ExceptionInfo *), 57 | *DestroyResizeFilter(ResizeFilter *); 58 | 59 | extern MagickExport ResizeWeightingFunctionType 60 | GetResizeFilterWeightingType(const ResizeFilter *), 61 | GetResizeFilterWindowWeightingType(const ResizeFilter *); 62 | 63 | extern MagickExport void 64 | SetResizeFilterSupport(ResizeFilter *,const MagickRealType); 65 | 66 | #if defined(__cplusplus) || defined(c_plusplus) 67 | } 68 | #endif 69 | 70 | #endif 71 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/resize.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore image resize methods. 17 | */ 18 | #ifndef _MAGICKCORE_RESIZE_H 19 | #define _MAGICKCORE_RESIZE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | typedef struct _ResizeFilter 26 | ResizeFilter; 27 | 28 | extern MagickExport Image 29 | *AdaptiveResizeImage(const Image *,const size_t,const size_t,ExceptionInfo *), 30 | *InterpolativeResizeImage(const Image *,const size_t,const size_t, 31 | const InterpolatePixelMethod,ExceptionInfo *), 32 | *LiquidRescaleImage(const Image *,const size_t,const size_t,const double, 33 | const double,ExceptionInfo *), 34 | *MagnifyImage(const Image *,ExceptionInfo *), 35 | *MinifyImage(const Image *,ExceptionInfo *), 36 | *ResampleImage(const Image *,const double,const double,const FilterTypes, 37 | const double,ExceptionInfo *), 38 | *ResizeImage(const Image *,const size_t,const size_t,const FilterTypes, 39 | const double,ExceptionInfo *), 40 | *SampleImage(const Image *,const size_t,const size_t,ExceptionInfo *), 41 | *ScaleImage(const Image *,const size_t,const size_t,ExceptionInfo *), 42 | *ThumbnailImage(const Image *,const size_t,const size_t,ExceptionInfo *); 43 | 44 | #if defined(__cplusplus) || defined(c_plusplus) 45 | } 46 | #endif 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/resource_.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore resource methods. 17 | */ 18 | #ifndef _MAGICKCORE_RESOURCE_H 19 | #define _MAGICKCORE_RESOURCE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | typedef enum 26 | { 27 | UndefinedResource, 28 | AreaResource, 29 | DiskResource, 30 | FileResource, 31 | MapResource, 32 | MemoryResource, 33 | ThreadResource, 34 | TimeResource, 35 | ThrottleResource 36 | } ResourceType; 37 | 38 | #define MagickResourceInfinity MagickULLConstant(~0) 39 | 40 | extern MagickExport int 41 | AcquireUniqueFileResource(char *); 42 | 43 | extern MagickExport MagickBooleanType 44 | AcquireMagickResource(const ResourceType,const MagickSizeType), 45 | GetPathTemplate(char *), 46 | ListMagickResourceInfo(FILE *,ExceptionInfo *), 47 | RelinquishUniqueFileResource(const char *), 48 | ResourceComponentGenesis(void), 49 | SetMagickResourceLimit(const ResourceType,const MagickSizeType); 50 | 51 | extern MagickExport MagickSizeType 52 | GetMagickResource(const ResourceType), 53 | GetMagickResourceLimit(const ResourceType); 54 | 55 | extern MagickExport void 56 | AsynchronousResourceComponentTerminus(void), 57 | RelinquishMagickResource(const ResourceType,const MagickSizeType), 58 | ResourceComponentTerminus(void); 59 | 60 | #if defined(__cplusplus) || defined(c_plusplus) 61 | } 62 | #endif 63 | 64 | #endif 65 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/segment.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore image segment methods. 17 | */ 18 | #ifndef _MAGICKCORE_SEGMENT_H 19 | #define _MAGICKCORE_SEGMENT_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | extern MagickExport MagickBooleanType 26 | GetImageDynamicThreshold(const Image *,const double,const double, 27 | MagickPixelPacket *,ExceptionInfo *), 28 | SegmentImage(Image *,const ColorspaceType,const MagickBooleanType, 29 | const double,const double); 30 | 31 | #if defined(__cplusplus) || defined(c_plusplus) 32 | } 33 | #endif 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/semaphore-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore private methods to lock and unlock semaphores. 17 | */ 18 | #ifndef _MAGICKCORE_SEMAPHORE_PRIVATE_H 19 | #define _MAGICKCORE_SEMAPHORE_PRIVATE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #if defined(MAGICKCORE_THREAD_SUPPORT) 26 | static pthread_mutex_t 27 | semaphore_mutex = PTHREAD_MUTEX_INITIALIZER; 28 | #elif defined(MAGICKCORE_HAVE_WINTHREADS) 29 | static LONG 30 | semaphore_mutex = 0; 31 | #else 32 | static ssize_t 33 | semaphore_mutex = 0; 34 | #endif 35 | 36 | static inline void LockMagickMutex(void) 37 | { 38 | #if defined(MAGICKCORE_THREAD_SUPPORT) 39 | { 40 | int 41 | status; 42 | 43 | status=pthread_mutex_lock(&semaphore_mutex); 44 | if (status != 0) 45 | { 46 | errno=status; 47 | ThrowFatalException(ResourceLimitFatalError,"UnableToLockSemaphore"); 48 | } 49 | } 50 | #elif defined(MAGICKCORE_HAVE_WINTHREADS) 51 | while (InterlockedCompareExchange(&semaphore_mutex,1L,0L) != 0) 52 | Sleep(10); 53 | #endif 54 | } 55 | 56 | static inline void UnlockMagickMutex(void) 57 | { 58 | #if defined(MAGICKCORE_THREAD_SUPPORT) 59 | { 60 | int 61 | status; 62 | 63 | status=pthread_mutex_unlock(&semaphore_mutex); 64 | if (status != 0) 65 | { 66 | errno=status; 67 | ThrowFatalException(ResourceLimitFatalError,"UnableToUnlockSemaphore"); 68 | } 69 | } 70 | #elif defined(MAGICKCORE_HAVE_WINTHREADS) 71 | InterlockedExchange(&semaphore_mutex,0L); 72 | #endif 73 | } 74 | 75 | #if defined(__cplusplus) || defined(c_plusplus) 76 | } 77 | #endif 78 | 79 | #endif 80 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/semaphore.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore methods to lock and unlock semaphores. 17 | */ 18 | #ifndef _MAGICKCORE_SEMAPHORE_H 19 | #define _MAGICKCORE_SEMAPHORE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | typedef struct SemaphoreInfo 26 | SemaphoreInfo; 27 | 28 | extern MagickExport MagickBooleanType 29 | SemaphoreComponentGenesis(void); 30 | 31 | extern MagickExport SemaphoreInfo 32 | *AllocateSemaphoreInfo(void); 33 | 34 | extern MagickExport void 35 | AcquireSemaphoreInfo(SemaphoreInfo **), 36 | DestroySemaphoreInfo(SemaphoreInfo **), 37 | LockSemaphoreInfo(SemaphoreInfo *), 38 | RelinquishSemaphoreInfo(SemaphoreInfo *), 39 | SemaphoreComponentTerminus(void), 40 | UnlockSemaphoreInfo(SemaphoreInfo *); 41 | 42 | #if defined(__cplusplus) || defined(c_plusplus) 43 | } 44 | #endif 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/shear.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore image stream methods. 17 | */ 18 | #ifndef _MAGICKCORE_SHEAR_H 19 | #define _MAGICKCORE_SHEAR_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | extern MagickExport Image 26 | *DeskewImage(const Image *,const double,ExceptionInfo *), 27 | *IntegralRotateImage(const Image *,size_t,ExceptionInfo *), 28 | *ShearImage(const Image *,const double,const double,ExceptionInfo *), 29 | *ShearRotateImage(const Image *,const double,ExceptionInfo *); 30 | 31 | #if defined(__cplusplus) || defined(c_plusplus) 32 | } 33 | #endif 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/signature-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore digital signature methods. 17 | */ 18 | #ifndef _MAGICKCORE_SIGNATURE_PRIVATE_H 19 | #define _MAGICKCORE_SIGNATURE_PRIVATE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #define MagickSignatureSize 64 26 | 27 | #include "magick/string_.h" 28 | 29 | typedef struct _SignatureInfo 30 | SignatureInfo; 31 | 32 | extern MagickExport MagickBooleanType 33 | SignatureImage(Image *); 34 | 35 | extern MagickExport SignatureInfo 36 | *AcquireSignatureInfo(void), 37 | *DestroySignatureInfo(SignatureInfo *); 38 | 39 | extern MagickExport const StringInfo 40 | *GetSignatureDigest(const SignatureInfo *); 41 | 42 | extern MagickExport unsigned int 43 | GetSignatureBlocksize(const SignatureInfo *), 44 | GetSignatureDigestsize(const SignatureInfo *); 45 | 46 | extern MagickExport void 47 | InitializeSignature(SignatureInfo *), 48 | FinalizeSignature(SignatureInfo *), 49 | SetSignatureDigest(SignatureInfo *,const StringInfo *), 50 | UpdateSignature(SignatureInfo *,const StringInfo *); 51 | 52 | #if defined(__cplusplus) || defined(c_plusplus) 53 | } 54 | #endif 55 | 56 | #endif 57 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/signature.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore digital signature methods. 17 | */ 18 | #ifndef _MAGICKCORE_SIGNATURE_H 19 | #define _MAGICKCORE_SIGNATURE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | extern MagickExport MagickBooleanType 26 | SignatureImage(Image *); 27 | 28 | #if defined(__cplusplus) || defined(c_plusplus) 29 | } 30 | #endif 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/splay-tree.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore splay-tree methods. 17 | */ 18 | #ifndef _MAGICKCORE_SPLAY_H 19 | #define _MAGICKCORE_SPLAY_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | typedef struct _SplayTreeInfo 26 | SplayTreeInfo; 27 | 28 | extern MagickExport MagickBooleanType 29 | AddValueToSplayTree(SplayTreeInfo *,const void *,const void *), 30 | DeleteNodeByValueFromSplayTree(SplayTreeInfo *,const void *), 31 | DeleteNodeFromSplayTree(SplayTreeInfo *,const void *); 32 | 33 | extern MagickExport const void 34 | *GetNextKeyInSplayTree(SplayTreeInfo *), 35 | *GetNextValueInSplayTree(SplayTreeInfo *), 36 | *GetValueFromSplayTree(SplayTreeInfo *,const void *); 37 | 38 | extern MagickExport int 39 | CompareSplayTreeString(const void *,const void *), 40 | CompareSplayTreeStringInfo(const void *,const void *); 41 | 42 | extern MagickExport SplayTreeInfo 43 | *CloneSplayTree(SplayTreeInfo *,void *(*)(void *),void *(*)(void *)), 44 | *DestroySplayTree(SplayTreeInfo *), 45 | *NewSplayTree(int (*)(const void *,const void *),void *(*)(void *), 46 | void *(*)(void *)); 47 | 48 | extern MagickExport size_t 49 | GetNumberOfNodesInSplayTree(const SplayTreeInfo *); 50 | 51 | extern MagickExport void 52 | *RemoveNodeByValueFromSplayTree(SplayTreeInfo *,const void *), 53 | *RemoveNodeFromSplayTree(SplayTreeInfo *,const void *), 54 | ResetSplayTree(SplayTreeInfo *), 55 | ResetSplayTreeIterator(SplayTreeInfo *); 56 | 57 | #if defined(__cplusplus) || defined(c_plusplus) 58 | } 59 | #endif 60 | 61 | #endif 62 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/stream-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore image stream private methods. 17 | */ 18 | #ifndef _MAGICKCORE_STREAM_PRIVATE_H 19 | #define _MAGICKCORE_STREAM_PRIVATE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | typedef struct _StreamInfo 26 | StreamInfo; 27 | 28 | extern MagickExport const void 29 | *GetStreamInfoClientData(StreamInfo *); 30 | 31 | extern MagickExport Image 32 | *StreamImage(const ImageInfo *,StreamInfo *,ExceptionInfo *); 33 | 34 | extern MagickExport MagickBooleanType 35 | OpenStream(const ImageInfo *,StreamInfo *,const char *,ExceptionInfo *); 36 | 37 | extern MagickExport StreamInfo 38 | *AcquireStreamInfo(const ImageInfo *), 39 | *DestroyStreamInfo(StreamInfo *); 40 | 41 | extern MagickExport void 42 | SetStreamInfoClientData(StreamInfo *,const void *), 43 | SetStreamInfoMap(StreamInfo *,const char *), 44 | SetStreamInfoStorageType(StreamInfo *,const StorageType); 45 | 46 | #if defined(__cplusplus) || defined(c_plusplus) 47 | } 48 | #endif 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/stream.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore image stream methods. 17 | */ 18 | #ifndef _MAGICKCORE_STREAM_H 19 | #define _MAGICKCORE_STREAM_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | typedef size_t 26 | (*StreamHandler)(const Image *,const void *,const size_t); 27 | 28 | extern MagickExport Image 29 | *ReadStream(const ImageInfo *,StreamHandler,ExceptionInfo *); 30 | 31 | extern MagickExport MagickBooleanType 32 | WriteStream(const ImageInfo *,Image *,StreamHandler); 33 | 34 | #if defined(__cplusplus) || defined(c_plusplus) 35 | } 36 | #endif 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/string-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore private string methods. 17 | */ 18 | #ifndef _MAGICKCORE_STRING_PRIVATE_H 19 | #define _MAGICKCORE_STRING_PRIVATE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #include "magick/locale_.h" 26 | 27 | static inline double SiPrefixToDoubleInterval(const char *string, 28 | const double interval) 29 | { 30 | char 31 | *q; 32 | 33 | double 34 | value; 35 | 36 | value=InterpretSiPrefixValue(string,&q); 37 | if (*q == '%') 38 | value*=interval/100.0; 39 | return(value); 40 | } 41 | 42 | static inline double StringToDouble(const char *restrict string, 43 | char **restrict sentinal) 44 | { 45 | return(InterpretLocaleValue(string,sentinal)); 46 | } 47 | 48 | static inline double StringToDoubleInterval(const char *string, 49 | const double interval) 50 | { 51 | char 52 | *q; 53 | 54 | double 55 | value; 56 | 57 | value=InterpretLocaleValue(string,&q); 58 | if (*q == '%') 59 | value*=interval/100.0; 60 | return(value); 61 | } 62 | 63 | static inline int StringToInteger(const char *restrict value) 64 | { 65 | return((int) strtol(value,(char **) NULL,10)); 66 | } 67 | 68 | static inline long StringToLong(const char *restrict value) 69 | { 70 | return(strtol(value,(char **) NULL,10)); 71 | } 72 | 73 | static inline unsigned long StringToUnsignedLong(const char *restrict value) 74 | { 75 | return(strtoul(value,(char **) NULL,10)); 76 | } 77 | 78 | #if defined(__cplusplus) || defined(c_plusplus) 79 | } 80 | #endif 81 | 82 | #endif 83 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/thread_.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore private methods for internal threading. 17 | */ 18 | #ifndef _MAGICKCORE_THREAD_H 19 | #define _MAGICKCORE_THREAD_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #if defined(MAGICKCORE_THREAD_SUPPORT) 26 | typedef pthread_t MagickThreadType; 27 | #elif defined(MAGICKCORE_HAVE_WINTHREADS) 28 | typedef DWORD MagickThreadType; 29 | #else 30 | typedef pid_t MagickThreadType; 31 | #endif 32 | 33 | #if defined(MAGICKCORE_THREAD_SUPPORT) 34 | typedef pthread_key_t MagickThreadKey; 35 | #elif defined(MAGICKCORE_HAVE_WINTHREADS) 36 | typedef DWORD MagickThreadKey; 37 | #else 38 | typedef size_t *MagickThreadKey; 39 | #endif 40 | 41 | extern MagickExport MagickBooleanType 42 | MagickCreateThreadKey(MagickThreadKey *), 43 | MagickDeleteThreadKey(MagickThreadKey), 44 | MagickSetThreadValue(MagickThreadKey,const void *); 45 | 46 | extern MagickExport void 47 | *MagickGetThreadValue(MagickThreadKey); 48 | 49 | #if defined(__cplusplus) || defined(c_plusplus) 50 | } 51 | #endif 52 | 53 | #endif 54 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/timer.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore timer methods. 17 | */ 18 | #ifndef _MAGICKCORE_TIMER_H 19 | #define _MAGICKCORE_TIMER_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | typedef enum 26 | { 27 | UndefinedTimerState, 28 | StoppedTimerState, 29 | RunningTimerState 30 | } TimerState; 31 | 32 | typedef struct _Timer 33 | { 34 | double 35 | start, 36 | stop, 37 | total; 38 | } Timer; 39 | 40 | typedef struct _TimerInfo 41 | { 42 | Timer 43 | user, 44 | elapsed; 45 | 46 | TimerState 47 | state; 48 | 49 | size_t 50 | signature; 51 | } TimerInfo; 52 | 53 | extern MagickExport double 54 | GetElapsedTime(TimerInfo *), 55 | GetUserTime(TimerInfo *); 56 | 57 | extern MagickExport MagickBooleanType 58 | ContinueTimer(TimerInfo *); 59 | 60 | extern MagickExport TimerInfo 61 | *AcquireTimerInfo(void), 62 | *DestroyTimerInfo(TimerInfo *); 63 | 64 | extern MagickExport void 65 | GetTimerInfo(TimerInfo *), 66 | ResetTimer(TimerInfo *), 67 | StartTimer(TimerInfo *,const MagickBooleanType); 68 | 69 | #if defined(__cplusplus) || defined(c_plusplus) 70 | } 71 | #endif 72 | 73 | #endif 74 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/token.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore token methods. 17 | */ 18 | #ifndef _MAGICKCORE_TOKEN_H 19 | #define _MAGICKCORE_TOKEN_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | /* 26 | Typedef declarations. 27 | */ 28 | typedef struct _TokenInfo 29 | TokenInfo; 30 | 31 | extern MagickExport int 32 | Tokenizer(TokenInfo *,const unsigned int,char *,const size_t,const char *, 33 | const char *,const char *,const char *,const char,char *,int *,char *); 34 | 35 | extern MagickExport MagickBooleanType 36 | GlobExpression(const char *,const char *,const MagickBooleanType), 37 | IsGlob(const char *), 38 | IsMagickTrue(const char *); 39 | 40 | extern MagickExport TokenInfo 41 | *AcquireTokenInfo(void), 42 | *DestroyTokenInfo(TokenInfo *); 43 | 44 | extern MagickExport void 45 | GetMagickToken(const char *,const char **,char *); 46 | 47 | #if defined(__cplusplus) || defined(c_plusplus) 48 | } 49 | #endif 50 | 51 | #endif 52 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/transform.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore image transform methods. 17 | */ 18 | #ifndef _MAGICKCORE_TRANSFORM_H 19 | #define _MAGICKCORE_TRANSFORM_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | extern MagickExport Image 26 | *AutoOrientImage(const Image *,const OrientationType,ExceptionInfo *), 27 | *ChopImage(const Image *,const RectangleInfo *,ExceptionInfo *), 28 | *ConsolidateCMYKImages(const Image *,ExceptionInfo *), 29 | *CropImage(const Image *,const RectangleInfo *,ExceptionInfo *), 30 | *CropImageToTiles(const Image *,const char *, ExceptionInfo *), 31 | *ExcerptImage(const Image *,const RectangleInfo *,ExceptionInfo *), 32 | *ExtentImage(const Image *,const RectangleInfo *,ExceptionInfo *), 33 | *FlipImage(const Image *,ExceptionInfo *), 34 | *FlopImage(const Image *,ExceptionInfo *), 35 | *RollImage(const Image *,const ssize_t,const ssize_t,ExceptionInfo *), 36 | *ShaveImage(const Image *,const RectangleInfo *,ExceptionInfo *), 37 | *SpliceImage(const Image *,const RectangleInfo *,ExceptionInfo *), 38 | *TransposeImage(const Image *,ExceptionInfo *), 39 | *TransverseImage(const Image *,ExceptionInfo *), 40 | *TrimImage(const Image *,ExceptionInfo *); 41 | 42 | extern MagickExport MagickBooleanType 43 | TransformImage(Image **,const char *,const char *), 44 | TransformImages(Image **,const char *,const char *); 45 | 46 | #if defined(__cplusplus) || defined(c_plusplus) 47 | } 48 | #endif 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/utility.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore utility methods. 17 | */ 18 | #ifndef _MAGICKCORE_UTILITY_H 19 | #define _MAGICKCORE_UTILITY_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | typedef enum 26 | { 27 | UndefinedPath, 28 | MagickPath, 29 | RootPath, 30 | HeadPath, 31 | TailPath, 32 | BasePath, 33 | ExtensionPath, 34 | SubimagePath, 35 | CanonicalPath 36 | } PathType; 37 | 38 | extern MagickExport char 39 | *Base64Encode(const unsigned char *,const size_t,size_t *), 40 | **GetPathComponents(const char *,size_t *), 41 | **ListFiles(const char *,const char *,size_t *); 42 | 43 | extern MagickExport int 44 | SystemCommand(const MagickBooleanType,const MagickBooleanType,const char *, 45 | ExceptionInfo *); 46 | 47 | extern MagickExport MagickBooleanType 48 | AcquireUniqueFilename(char *), 49 | AcquireUniqueSymbolicLink(const char *,char *), 50 | ExpandFilenames(int *,char ***), 51 | GetPathAttributes(const char *,void *), 52 | GetExecutionPath(char *,const size_t), 53 | IsPathAccessible(const char *); 54 | 55 | extern MagickExport size_t 56 | MultilineCensus(const char *); 57 | 58 | extern MagickExport ssize_t 59 | GetMagickPageSize(void); 60 | 61 | extern MagickExport unsigned char 62 | *Base64Decode(const char *, size_t *); 63 | 64 | extern MagickExport void 65 | AppendImageFormat(const char *,char *), 66 | ChopPathComponents(char *,const size_t), 67 | ExpandFilename(char *), 68 | GetPathComponent(const char *,PathType,char *), 69 | MagickDelay(const MagickSizeType); 70 | 71 | #if defined(__cplusplus) || defined(c_plusplus) 72 | } 73 | #endif 74 | 75 | #endif 76 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/version-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore version private methods. 17 | */ 18 | #ifndef _MAGICKCORE_VERSION_PRIVATE_H 19 | #define _MAGICKCORE_VERSION_PRIVATE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #include "magick/string_.h" 26 | 27 | extern MagickExport unsigned int 28 | GetMagickSignature(const StringInfo *); 29 | 30 | #if defined(__cplusplus) || defined(c_plusplus) 31 | } 32 | #endif 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/widget.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore X11 widget methods. 17 | */ 18 | #ifndef _MAGICKCORE_WIDGET_H 19 | #define _MAGICKCORE_WIDGET_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #if defined(MAGICKCORE_X11_DELEGATE) 26 | 27 | #include "magick/xwindow-private.h" 28 | 29 | extern MagickExport int 30 | XCommandWidget(Display *,XWindows *,const char **,XEvent *), 31 | XConfirmWidget(Display *,XWindows *,const char *,const char *), 32 | XDialogWidget(Display *,XWindows *,const char *,const char *,char *), 33 | XMenuWidget(Display *,XWindows *,const char *,const char **,char *); 34 | 35 | extern MagickExport MagickBooleanType 36 | XPreferencesWidget(Display *,XResourceInfo *,XWindows *); 37 | 38 | extern MagickExport void 39 | DestroyXWidget(void), 40 | XColorBrowserWidget(Display *,XWindows *,const char *,char *), 41 | XFileBrowserWidget(Display *,XWindows *,const char *,char *), 42 | XFontBrowserWidget(Display *,XWindows *,const char *,char *), 43 | XInfoWidget(Display *,XWindows *,const char *), 44 | XListBrowserWidget(Display *,XWindows *,XWindowInfo *,const char **, 45 | const char *,const char *,char *), 46 | XNoticeWidget(Display *,XWindows *,const char *,const char *), 47 | XProgressMonitorWidget(Display *,XWindows *,const char *, 48 | const MagickOffsetType,const MagickSizeType), 49 | XTextViewWidget(Display *,const XResourceInfo *,XWindows *, 50 | const MagickBooleanType,const char *,const char **); 51 | 52 | #endif 53 | 54 | #if defined(__cplusplus) || defined(c_plusplus) 55 | } 56 | #endif 57 | 58 | #endif 59 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/xml-tree.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/MagicksToolkit/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | Magick's toolkit xml-tree methods. 17 | */ 18 | #ifndef _MAGICKCORE_XML_TREE_H 19 | #define _MAGICKCORE_XML_TREE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #include "exception.h" 26 | #include "splay-tree.h" 27 | 28 | typedef struct _XMLTreeInfo 29 | XMLTreeInfo; 30 | 31 | extern MagickExport char 32 | *CanonicalXMLContent(const char *,const MagickBooleanType), 33 | *XMLTreeInfoToXML(XMLTreeInfo *); 34 | 35 | extern MagickExport const char 36 | *GetXMLTreeAttribute(XMLTreeInfo *,const char *), 37 | *GetXMLTreeContent(XMLTreeInfo *), 38 | **GetXMLTreeProcessingInstructions(XMLTreeInfo *,const char *), 39 | *GetXMLTreeTag(XMLTreeInfo *); 40 | 41 | extern MagickExport MagickBooleanType 42 | GetXMLTreeAttributes(const XMLTreeInfo *,SplayTreeInfo *); 43 | 44 | extern MagickExport XMLTreeInfo 45 | *AddChildToXMLTree(XMLTreeInfo *,const char *,const size_t), 46 | *AddPathToXMLTree(XMLTreeInfo *,const char *,const size_t), 47 | *DestroyXMLTree(XMLTreeInfo *), 48 | *GetNextXMLTreeTag(XMLTreeInfo *), 49 | *GetXMLTreeChild(XMLTreeInfo *,const char *), 50 | *GetXMLTreeOrdered(XMLTreeInfo *), 51 | *GetXMLTreePath(XMLTreeInfo *,const char *), 52 | *GetXMLTreeSibling(XMLTreeInfo *), 53 | *InsertTagIntoXMLTree(XMLTreeInfo *,XMLTreeInfo *,const size_t), 54 | *NewXMLTree(const char *,ExceptionInfo *), 55 | *NewXMLTreeTag(const char *), 56 | *ParseTagFromXMLTree(XMLTreeInfo *), 57 | *PruneTagFromXMLTree(XMLTreeInfo *), 58 | *SetXMLTreeAttribute(XMLTreeInfo *,const char *,const char *), 59 | *SetXMLTreeContent(XMLTreeInfo *,const char *); 60 | 61 | #if defined(__cplusplus) || defined(c_plusplus) 62 | } 63 | #endif 64 | 65 | #endif 66 | -------------------------------------------------------------------------------- /includes/ImageMagick/magick/xwindow.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore X11 window methods. 17 | */ 18 | #ifndef _MAGICKCORE_XWINDOW_H 19 | #define _MAGICKCORE_XWINDOW_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | typedef struct _XImportInfo 26 | { 27 | MagickBooleanType 28 | frame, 29 | borders, 30 | screen, 31 | descend, 32 | silent; 33 | } XImportInfo; 34 | 35 | extern MagickExport Image 36 | *XImportImage(const ImageInfo *,XImportInfo *); 37 | 38 | extern MagickExport void 39 | XGetImportInfo(XImportInfo *); 40 | 41 | #if defined(__cplusplus) || defined(c_plusplus) 42 | } 43 | #endif 44 | 45 | #endif 46 | -------------------------------------------------------------------------------- /includes/ImageMagick/wand/animate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickWand animate command-line methods. 17 | */ 18 | #ifndef _MAGICKWAND_ANIMATE_H 19 | #define _MAGICKWAND_ANIMATE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | extern WandExport MagickBooleanType 26 | AnimateImageCommand(ImageInfo *,int,char **,char **,ExceptionInfo *); 27 | 28 | #if defined(__cplusplus) || defined(c_plusplus) 29 | } 30 | #endif 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /includes/ImageMagick/wand/compare.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickWand compare command-line method. 17 | */ 18 | #ifndef _MAGICKWAND_COMPARE_H 19 | #define _MAGICKWAND_COMPARE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | extern WandExport MagickBooleanType 26 | CompareImageCommand(ImageInfo *,int,char **,char **,ExceptionInfo *); 27 | 28 | #if defined(__cplusplus) || defined(c_plusplus) 29 | } 30 | #endif 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /includes/ImageMagick/wand/composite.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickWand composite command-line method. 17 | */ 18 | #ifndef _MAGICKWAND_COMPOSITE_H 19 | #define _MAGICKWAND_COMPOSITE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | extern WandExport MagickBooleanType 26 | CompositeImageCommand(ImageInfo *,int,char **,char **,ExceptionInfo *); 27 | 28 | #if defined(__cplusplus) || defined(c_plusplus) 29 | } 30 | #endif 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /includes/ImageMagick/wand/conjure.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickWand conjure command-line method. 17 | */ 18 | #ifndef _MAGICKWAND_CONJURE_H 19 | #define _MAGICKWAND_CONJURE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | extern WandExport MagickBooleanType 26 | ConjureImageCommand(ImageInfo *,int,char **,char **,ExceptionInfo *); 27 | 28 | #if defined(__cplusplus) || defined(c_plusplus) 29 | } 30 | #endif 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /includes/ImageMagick/wand/convert.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickWand convert command-line method. 17 | */ 18 | #ifndef _MAGICKWAND_CONVERT_H 19 | #define _MAGICKWAND_CONVERT_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | extern WandExport MagickBooleanType 26 | ConvertImageCommand(ImageInfo *,int,char **,char **,ExceptionInfo *); 27 | 28 | #if defined(__cplusplus) || defined(c_plusplus) 29 | } 30 | #endif 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /includes/ImageMagick/wand/display.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickWand display command-line method. 17 | */ 18 | #ifndef _MAGICKWAND_DISPLAY_H 19 | #define _MAGICKWAND_DISPLAY_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | extern WandExport MagickBooleanType 26 | DisplayImageCommand(ImageInfo *,int,char **,char **,ExceptionInfo *); 27 | 28 | #if defined(__cplusplus) || defined(c_plusplus) 29 | } 30 | #endif 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /includes/ImageMagick/wand/identify.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickWand identify command-line method. 17 | */ 18 | #ifndef _MAGICKWAND_IDENTIFY_H 19 | #define _MAGICKWAND_IDENTIFY_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | extern WandExport MagickBooleanType 26 | IdentifyImageCommand(ImageInfo *,int,char **,char **,ExceptionInfo *); 27 | 28 | #if defined(__cplusplus) || defined(c_plusplus) 29 | } 30 | #endif 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /includes/ImageMagick/wand/import.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickWand import command-line method. 17 | */ 18 | #ifndef _MAGICKWAND_IMPORT_H 19 | #define _MAGICKWAND_IMPORT_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | extern WandExport MagickBooleanType 26 | ImportImageCommand(ImageInfo *,int,char **,char **,ExceptionInfo *); 27 | 28 | #if defined(__cplusplus) || defined(c_plusplus) 29 | } 30 | #endif 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /includes/ImageMagick/wand/magick-wand-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | ImageMagick pixel wand API. 17 | */ 18 | #ifndef _MAGICKWAND_MAGICK_WAND_PRIVATE_H 19 | #define _MAGICKWAND_MAGICK_WAND_PRIVATE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #define DegreesToRadians(x) (MagickPI*(x)/180.0) 26 | #define MagickPI 3.14159265358979323846264338327950288419716939937510 27 | #define MagickWandId "MagickWand" 28 | #define QuantumTick(i,span) ((MagickBooleanType) ((((i) & ((i)-1)) == 0) || \ 29 | (((i) & 0xfff) == 0) || \ 30 | ((MagickOffsetType) (i) == ((MagickOffsetType) (span)-1)))) 31 | #define RadiansToDegrees(x) (180.0*(x)/MagickPI) 32 | 33 | struct _MagickWand 34 | { 35 | size_t 36 | id; 37 | 38 | char 39 | name[MaxTextExtent]; 40 | 41 | ExceptionInfo 42 | *exception; 43 | 44 | ImageInfo 45 | *image_info; 46 | 47 | QuantizeInfo 48 | *quantize_info; 49 | 50 | Image 51 | *images; 52 | 53 | MagickBooleanType 54 | insert_before, 55 | image_pending, 56 | debug; 57 | 58 | size_t 59 | signature; 60 | }; 61 | 62 | #if defined(__cplusplus) || defined(c_plusplus) 63 | } 64 | #endif 65 | 66 | #endif 67 | -------------------------------------------------------------------------------- /includes/ImageMagick/wand/magick-wand.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickWand API (deprecated, use magick-wand.h instead). 17 | */ 18 | 19 | #ifndef _MAGICKWAND_MAGICK_WAND_DEPRECATED_H 20 | #define _MAGICKWAND_MAGICK_WAND_DEPRECATED_H 21 | 22 | #include "MagickWand.h" 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /includes/ImageMagick/wand/magick_wand.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickWand API (deprecated, use magick-wand.h instead). 17 | */ 18 | 19 | #ifndef _MAGICKWAND_MAGICK_WAND_DEPRECATED_H 20 | #define _MAGICKWAND_MAGICK_WAND_DEPRECATED_H 21 | 22 | #include "wand/MagickWand.h" 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /includes/ImageMagick/wand/mogrify.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickWand mogrify command-line method. 17 | */ 18 | #ifndef _MAGICKWAND_MOGRIFY_H 19 | #define _MAGICKWAND_MOGRIFY_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | typedef MagickBooleanType 26 | (*MagickCommand)(ImageInfo *,int,char **,char **,ExceptionInfo *); 27 | 28 | extern WandExport MagickBooleanType 29 | MagickCommandGenesis(ImageInfo *,MagickCommand,int,char **,char **, 30 | ExceptionInfo *), 31 | MogrifyImage(ImageInfo *,const int,const char **,Image **,ExceptionInfo *), 32 | MogrifyImageCommand(ImageInfo *,int,char **,char **,ExceptionInfo *), 33 | MogrifyImageInfo(ImageInfo *,const int,const char **,ExceptionInfo *), 34 | MogrifyImageList(ImageInfo *,const int,const char **,Image **, 35 | ExceptionInfo *), 36 | MogrifyImages(ImageInfo *,const MagickBooleanType,const int,const char **, 37 | Image **,ExceptionInfo *); 38 | 39 | #if defined(__cplusplus) || defined(c_plusplus) 40 | } 41 | #endif 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /includes/ImageMagick/wand/montage.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickWand montage command-line method. 17 | */ 18 | #ifndef _MAGICKWAND_MONTAGE_H 19 | #define _MAGICKWAND_MONTAGE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | extern WandExport MagickBooleanType 26 | MontageImageCommand(ImageInfo *,int,char **,char **,ExceptionInfo *); 27 | 28 | #if defined(__cplusplus) || defined(c_plusplus) 29 | } 30 | #endif 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /includes/ImageMagick/wand/pixel-iterator.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | Pixel Iterator Methods. 17 | */ 18 | #ifndef _MAGICKWAND_PIXEL_ITERATOR_H 19 | #define _MAGICKWAND_PIXEL_ITERATOR_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #include "magick-wand.h" 26 | #include "pixel-wand.h" 27 | 28 | typedef struct _PixelIterator 29 | PixelIterator; 30 | 31 | extern WandExport char 32 | *PixelGetIteratorException(const PixelIterator *,ExceptionType *); 33 | 34 | extern WandExport ExceptionType 35 | PixelGetIteratorExceptionType(const PixelIterator *); 36 | 37 | extern WandExport MagickBooleanType 38 | IsPixelIterator(const PixelIterator *), 39 | PixelClearIteratorException(PixelIterator *), 40 | PixelSetIteratorRow(PixelIterator *,const ssize_t), 41 | PixelSyncIterator(PixelIterator *); 42 | 43 | extern WandExport PixelIterator 44 | *ClonePixelIterator(const PixelIterator *), 45 | *DestroyPixelIterator(PixelIterator *), 46 | *NewPixelIterator(MagickWand *), 47 | *NewPixelRegionIterator(MagickWand *,const ssize_t,const ssize_t,const size_t, 48 | const size_t); 49 | 50 | extern WandExport PixelWand 51 | **PixelGetCurrentIteratorRow(PixelIterator *,size_t *), 52 | **PixelGetNextIteratorRow(PixelIterator *,size_t *), 53 | **PixelGetPreviousIteratorRow(PixelIterator *,size_t *); 54 | 55 | extern WandExport ssize_t 56 | PixelGetIteratorRow(PixelIterator *); 57 | 58 | extern WandExport void 59 | ClearPixelIterator(PixelIterator *), 60 | PixelResetIterator(PixelIterator *), 61 | PixelSetFirstIteratorRow(PixelIterator *), 62 | PixelSetLastIteratorRow(PixelIterator *); 63 | 64 | #if defined(__cplusplus) || defined(c_plusplus) 65 | } 66 | #endif 67 | 68 | #endif 69 | -------------------------------------------------------------------------------- /includes/ImageMagick/wand/pixel-wand-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MAgickWand pixel wand private methods. 17 | */ 18 | #ifndef _MAGICKWAND_PIXEL_WAND_PRIVATE_H 19 | #define _MAGICKWAND_PIXEL_WAND_PRIVATE_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | #if defined(__cplusplus) || defined(c_plusplus) 26 | } 27 | #endif 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /includes/ImageMagick/wand/stream.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickWand montage command-line method. 17 | */ 18 | #ifndef _MAGICKWAND_STREAM_H 19 | #define _MAGICKWAND_STREAM_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | extern WandExport MagickBooleanType 26 | StreamImageCommand(ImageInfo *,int,char **,char **,ExceptionInfo *); 27 | 28 | #if defined(__cplusplus) || defined(c_plusplus) 29 | } 30 | #endif 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /includes/ImageMagick/wand/wand.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | ImageMagick wand support methods. 17 | */ 18 | #ifndef _MAGICKWAND_WAND_H 19 | #define _MAGICKWAND_WAND_H 20 | 21 | #if defined(__cplusplus) || defined(c_plusplus) 22 | extern "C" { 23 | #endif 24 | 25 | extern WandExport size_t 26 | AcquireWandId(void); 27 | 28 | extern WandExport void 29 | DestroyWandIds(void), 30 | RelinquishWandId(const size_t); 31 | 32 | #if defined(__cplusplus) || defined(c_plusplus) 33 | } 34 | #endif 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /includes/assimp/Compiler/poppack1.h: -------------------------------------------------------------------------------- 1 | 2 | // =============================================================================== 3 | // May be included multiple times - resets structure packing to the defaults 4 | // for all supported compilers. Reverts the changes made by #include 5 | // 6 | // Currently this works on the following compilers: 7 | // MSVC 7,8,9 8 | // GCC 9 | // BORLAND (complains about 'pack state changed but not reverted', but works) 10 | // =============================================================================== 11 | 12 | #ifndef AI_PUSHPACK_IS_DEFINED 13 | # error pushpack1.h must be included after poppack1.h 14 | #endif 15 | 16 | // reset packing to the original value 17 | #if defined(_MSC_VER) || defined(__BORLANDC__) || defined (__BCPLUSPLUS__) 18 | # pragma pack( pop ) 19 | #endif 20 | #undef PACK_STRUCT 21 | 22 | #undef AI_PUSHPACK_IS_DEFINED 23 | -------------------------------------------------------------------------------- /includes/assimp/Compiler/pushpack1.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | // =============================================================================== 4 | // May be included multiple times - sets structure packing to 1 5 | // for all supported compilers. #include reverts the changes. 6 | // 7 | // Currently this works on the following compilers: 8 | // MSVC 7,8,9 9 | // GCC 10 | // BORLAND (complains about 'pack state changed but not reverted', but works) 11 | // 12 | // 13 | // USAGE: 14 | // 15 | // struct StructToBePacked { 16 | // } PACK_STRUCT; 17 | // 18 | // =============================================================================== 19 | 20 | #ifdef AI_PUSHPACK_IS_DEFINED 21 | # error poppack1.h must be included after pushpack1.h 22 | #endif 23 | 24 | #if defined(_MSC_VER) || defined(__BORLANDC__) || defined (__BCPLUSPLUS__) 25 | # pragma pack(push,1) 26 | # define PACK_STRUCT 27 | #elif defined( __GNUC__ ) 28 | # define PACK_STRUCT __attribute__((packed)) 29 | #else 30 | # error Compiler not supported 31 | #endif 32 | 33 | #if defined(_MSC_VER) 34 | 35 | // C4103: Packing was changed after the inclusion of the header, propably missing #pragma pop 36 | # pragma warning (disable : 4103) 37 | #endif 38 | 39 | #define AI_PUSHPACK_IS_DEFINED 40 | 41 | 42 | -------------------------------------------------------------------------------- /includes/assimp/ai_assert.h: -------------------------------------------------------------------------------- 1 | /** @file assert.h 2 | */ 3 | #ifndef AI_DEBUG_H_INC 4 | #define AI_DEBUG_H_INC 5 | 6 | #ifdef _DEBUG 7 | # include 8 | # define ai_assert(expression) assert(expression) 9 | #else 10 | # define ai_assert(expression) 11 | #endif 12 | 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /includes/assimp/defs.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hardware/ObjectViewer/718922e00a6f3e83510e6091f7630ac3c0e5066b/includes/assimp/defs.h -------------------------------------------------------------------------------- /includes/assimp/matrix3x3.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hardware/ObjectViewer/718922e00a6f3e83510e6091f7630ac3c0e5066b/includes/assimp/matrix3x3.h -------------------------------------------------------------------------------- /includes/assimp/matrix3x3.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hardware/ObjectViewer/718922e00a6f3e83510e6091f7630ac3c0e5066b/includes/assimp/matrix3x3.inl -------------------------------------------------------------------------------- /includes/assimp/matrix4x4.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hardware/ObjectViewer/718922e00a6f3e83510e6091f7630ac3c0e5066b/includes/assimp/matrix4x4.h -------------------------------------------------------------------------------- /includes/assimp/matrix4x4.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hardware/ObjectViewer/718922e00a6f3e83510e6091f7630ac3c0e5066b/includes/assimp/matrix4x4.inl -------------------------------------------------------------------------------- /libs/CORE_RL_Magick++_.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hardware/ObjectViewer/718922e00a6f3e83510e6091f7630ac3c0e5066b/libs/CORE_RL_Magick++_.lib -------------------------------------------------------------------------------- /libs/assimp.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hardware/ObjectViewer/718922e00a6f3e83510e6091f7630ac3c0e5066b/libs/assimp.lib -------------------------------------------------------------------------------- /resources/images/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hardware/ObjectViewer/718922e00a6f3e83510e6091f7630ac3c0e5066b/resources/images/splash.png -------------------------------------------------------------------------------- /resources/shaders/basic.vert: -------------------------------------------------------------------------------- 1 | #version 430 core 2 | 3 | /* 4 | PER-FRAGMENT LIGHTING (PHONG SHADING IMPLEMENTATION) 5 | */ 6 | 7 | in vec3 position; // Vertex postion 8 | in vec4 color; // Vertex color 9 | in vec2 texCoord; // Texture coordinates 10 | in vec3 normal; // Vertex normal 11 | 12 | out VS_OUT 13 | { 14 | vec4 P; // Position vector transformed into eye (camera) space 15 | vec3 N; // Normal vector transformed into eye (camera) space 16 | vec3 V; // View vector (the negative of the view-space position) 17 | 18 | vec2 texCoord; 19 | vec4 color; 20 | } vs_out; 21 | 22 | uniform mat3 normalMatrix; 23 | uniform mat4 modelViewMatrix; 24 | uniform mat4 projectionMatrix; 25 | 26 | void main() 27 | { 28 | // Calculate position vector in view-space coordinate 29 | vs_out.P = modelViewMatrix * vec4(position, 1.0); 30 | 31 | // Calculate normal vector in view-space coordinate 32 | // normalMatrix is the transpose of the inverse of the modelView matrix 33 | // normalMatrix = transpose(inverse(mat3(modelViewMatrix))); 34 | vs_out.N = normalMatrix * normal; 35 | 36 | // Calculate viewing vector from eye position to surface point 37 | vs_out.V = -vs_out.P.xyz; 38 | 39 | // Send texture coordinates and vertex color to the fragment shader 40 | vs_out.texCoord = texCoord; 41 | vs_out.color = color; 42 | 43 | // Calculate the clip-space position of each vertex 44 | gl_Position = projectionMatrix * vs_out.P; 45 | } 46 | -------------------------------------------------------------------------------- /resources/shaders/lighting/normal-mapping.frag: -------------------------------------------------------------------------------- 1 | #version 430 core 2 | 3 | /* 4 | NORMAL MAPPING (AKA BUMP MAPPING) 5 | + 6 | PER-FRAGMENT LIGHTING (PHONG SHADING IMPLEMENTATION) 7 | */ 8 | 9 | in VS_OUT 10 | { 11 | vec2 texCoord; 12 | vec3 eyeDirection; 13 | vec3 lightDirection; 14 | } fs_in; 15 | 16 | out vec4 FragColor; 17 | 18 | // Texture samplers 19 | uniform sampler2D texColor; 20 | uniform sampler2D texNormal; 21 | 22 | uniform float specularPower = 64.0; 23 | 24 | void main() 25 | { 26 | vec3 V = normalize(fs_in.eyeDirection); 27 | vec3 L = normalize(fs_in.lightDirection); 28 | vec3 N = normalize(texture(texNormal, fs_in.texCoord).rgb * 2.0 - vec3(1.0)); 29 | // N = vec3(0.0, 0.0, 1.0); 30 | vec3 R = reflect(-L, N); 31 | 32 | vec3 diffuseAlbedo = texture(texColor, fs_in.texCoord).rgb; 33 | vec3 diffuse = max(dot(N, L), 0.0) * diffuseAlbedo; 34 | vec3 specularAlbedo = vec3(0.7); 35 | // vec3 specular = max(pow(dot(R, V), 5.0), 0.0) * specularAlbedo; 36 | vec3 specular = pow(max(dot(R, V), 0.0), specularPower) * specularAlbedo; 37 | 38 | FragColor = vec4(diffuse + specular, 1.0); 39 | } 40 | -------------------------------------------------------------------------------- /resources/shaders/lighting/normal-mapping.vert: -------------------------------------------------------------------------------- 1 | #version 430 core 2 | 3 | /* 4 | NORMAL MAPPING (AKA BUMP MAPPING) 5 | + 6 | PER-FRAGMENT LIGHTING (PHONG SHADING IMPLEMENTATION) 7 | */ 8 | 9 | in vec3 position; 10 | in vec2 texCoord; 11 | in vec3 normal; 12 | in vec3 tangent; 13 | 14 | out VS_OUT 15 | { 16 | vec2 texCoord; 17 | vec3 eyeDirection; 18 | vec3 lightDirection; 19 | } vs_out; 20 | 21 | uniform mat4 modelViewMatrix; 22 | uniform mat4 projectionMatrix; 23 | 24 | uniform vec3 lightPosition = vec3(0.0, 0.0, 100.0); 25 | 26 | void main() 27 | { 28 | vec4 P = modelViewMatrix * vec4(position, 1.0); 29 | vec3 V = P.xyz; 30 | vec3 L = lightPosition - P.xyz; 31 | vec3 N = normalize(mat3(modelViewMatrix) * normal); 32 | vec3 T = normalize(mat3(modelViewMatrix) * tangent); 33 | vec3 B = cross(N, T); 34 | 35 | vs_out.lightDirection = normalize(vec3(dot(L, T), dot(L, B), dot(L, N))); 36 | 37 | V = -P.xyz; 38 | 39 | vs_out.eyeDirection = normalize(vec3(dot(V, T), dot(V, B), dot(V, N))); 40 | vs_out.texCoord = texCoord; 41 | 42 | gl_Position = projectionMatrix * P; 43 | } 44 | -------------------------------------------------------------------------------- /resources/shaders/lighting/per-fragment-blinn-phong.vert: -------------------------------------------------------------------------------- 1 | #version 430 core 2 | 3 | /* 4 | PER-FRAGMENT LIGHTING (BLINN-PHONG SHADING IMPLEMENTATION) 5 | */ 6 | 7 | in vec3 position; 8 | in vec4 color; 9 | in vec2 texCoord; 10 | in vec3 normal; 11 | 12 | out VS_OUT 13 | { 14 | vec3 N; 15 | vec3 V; 16 | vec4 P; 17 | 18 | vec2 texCoord; 19 | vec4 color; 20 | } vs_out; 21 | 22 | uniform mat4 modelMatrix; 23 | uniform mat4 viewProjectionMatrix; 24 | 25 | void main() 26 | { 27 | // Calculate model-space coordinate 28 | vec4 P = modelMatrix * vec4(position, 1.0); 29 | 30 | // Calculate normal in model-space 31 | vs_out.N = mat3(modelMatrix) * normal; 32 | 33 | // Calculate model vector 34 | vs_out.V = -P.xyz; 35 | 36 | // Send the model-space coordinate to the fragment shader 37 | vs_out.P = P; 38 | 39 | // Send texture coordinates and colors to the fragment shader 40 | vs_out.texCoord = texCoord; 41 | vs_out.color = color; 42 | 43 | // Calculate the clip-space position of each vertex 44 | gl_Position = viewProjectionMatrix * P; 45 | } 46 | -------------------------------------------------------------------------------- /resources/shaders/lighting/per-fragment-phong.frag: -------------------------------------------------------------------------------- 1 | #version 430 core 2 | 3 | /* 4 | PER-FRAGMENT LIGHTING (PHONG SHADING IMPLEMENTATION) 5 | */ 6 | 7 | in VS_OUT 8 | { 9 | vec4 P; 10 | vec3 N; 11 | vec3 V; 12 | 13 | vec2 texCoord; 14 | vec4 color; 15 | } fs_in; 16 | 17 | out vec4 FragColor; 18 | 19 | // Texture sampler 20 | uniform sampler2D texColor; 21 | 22 | // Material properties 23 | uniform MaterialInfo 24 | { 25 | vec4 Ka; // Ambient reflectivity 26 | vec4 Kd; // Diffuse reflectivity 27 | vec4 Ks; // Specular reflectivity 28 | vec4 Ke; // Emissive reflectivity 29 | 30 | float shininess; // Specular shininess exponent 31 | float shininessStrength; // Not used in Phong model 32 | } material; 33 | 34 | // Light properties 35 | uniform struct LightInfo 36 | { 37 | vec3 position; // Position of light source 38 | 39 | vec3 Ka; // Ambient light color 40 | vec3 Kd; // Diffuse light color 41 | vec3 Ks; // Specular light color 42 | 43 | float intensity; // Power scale of light source 44 | } light; 45 | 46 | uniform vec3 globalAmbient = vec3(0.1, 0.1, 0.1); 47 | 48 | void main() 49 | { 50 | // Calculate view-space light unit vector (light direction) 51 | // and normalize the incoming N and V vectors 52 | vec3 L = normalize(light.position - fs_in.P.xyz); 53 | vec3 N = normalize(fs_in.N); 54 | vec3 V = normalize(fs_in.V); 55 | 56 | // Calculate R by reflecting -L around the plane defined by N 57 | vec3 R = reflect(-L, N); 58 | 59 | // Calculate Lambertian reflectance and specular factor 60 | float nDotL = max(dot(N, L), 0.0); 61 | float rDotV = max(dot(R, V), 0.0); 62 | 63 | // Compute the emissive / ambient / diffuse / specular components for each fragment 64 | vec3 emissive = material.Ke.xyz; 65 | vec3 ambient = ( material.Ka.xyz * light.Ka ) + ( material.Ka.xyz * globalAmbient ); 66 | vec3 diffuse = material.Kd.xyz * light.Kd * nDotL; 67 | vec3 specular = vec3(0.0); 68 | 69 | if(nDotL > 0.0) 70 | { 71 | specular = material.Ks.xyz * light.Ks * pow(rDotV, material.shininess); 72 | } 73 | 74 | vec3 lightColor = ( emissive + ambient + diffuse + specular ) * light.intensity; 75 | 76 | FragColor = texture(texColor, fs_in.texCoord.xy) * fs_in.color * vec4(lightColor, 1.0); 77 | } 78 | -------------------------------------------------------------------------------- /resources/shaders/lighting/per-fragment-phong.vert: -------------------------------------------------------------------------------- 1 | #version 430 core 2 | 3 | /* 4 | PER-FRAGMENT LIGHTING (PHONG SHADING IMPLEMENTATION) 5 | */ 6 | 7 | in vec3 position; // Vertex postion 8 | in vec4 color; // Vertex color 9 | in vec2 texCoord; // Texture coordinates 10 | in vec3 normal; // Vertex normal 11 | 12 | out VS_OUT 13 | { 14 | vec4 P; // Position vector transformed into eye (camera) space 15 | vec3 N; // Normal vector transformed into eye (camera) space 16 | vec3 V; // View vector (the negative of the view-space position) 17 | 18 | vec2 texCoord; 19 | vec4 color; 20 | } vs_out; 21 | 22 | uniform mat3 normalMatrix; 23 | uniform mat4 modelViewMatrix; 24 | uniform mat4 modelViewProjectionMatrix; 25 | 26 | void main() 27 | { 28 | // Calculate position vector in view-space coordinate 29 | vs_out.P = modelViewMatrix * vec4(position, 1.0); 30 | 31 | // Calculate normal vector in view-space coordinate 32 | // normalMatrix is the transpose of the inverse of the modelView matrix 33 | // normalMatrix = transpose(inverse(mat3(modelViewMatrix))); 34 | vs_out.N = normalMatrix * normal; 35 | 36 | // Calculate viewing vector from eye position to surface point 37 | vs_out.V = -vs_out.P.xyz; 38 | 39 | // Send texture coordinates and vertex color to the fragment shader 40 | vs_out.texCoord = texCoord; 41 | vs_out.color = color; 42 | 43 | // Calculate the clip-space position of each vertex 44 | gl_Position = modelViewProjectionMatrix * vec4(position, 1.0); 45 | } 46 | -------------------------------------------------------------------------------- /resources/shaders/lighting/per-vertex-phong.frag: -------------------------------------------------------------------------------- 1 | #version 430 core 2 | 3 | in VS_OUT 4 | { 5 | vec3 light; 6 | vec2 texCoord; 7 | } fs_in; 8 | 9 | out vec4 FragColor; 10 | 11 | uniform sampler2D texColor; 12 | 13 | void main() 14 | { 15 | FragColor = texture(texColor, fs_in.texCoord.xy) * vec4(fs_in.light, 1.0); 16 | } 17 | -------------------------------------------------------------------------------- /resources/shaders/lighting/per-vertex-phong.vert: -------------------------------------------------------------------------------- 1 | #version 430 core 2 | 3 | /* 4 | PER-VERTEX LIGHTING (GOURAUD SHADING IMPLEMENTATION) 5 | */ 6 | 7 | in vec3 position; 8 | in vec2 texCoord; 9 | in vec3 normal; 10 | 11 | out VS_OUT 12 | { 13 | vec3 light; 14 | vec2 texCoord; 15 | } vs_out; 16 | 17 | uniform mat4 modelViewMatrix; 18 | uniform mat4 projectionMatrix; 19 | 20 | // Light properties 21 | uniform vec3 lightPosition = vec3(100.0, 100.0, 100.0); 22 | uniform vec3 ambient = vec3(0.1, 0.1, 0.1); 23 | uniform vec3 diffuseAlbedo = vec3(1.0, 1.0, 1.0); 24 | uniform vec3 specularAlbedo = vec3(0.7); 25 | 26 | uniform float specularPower = 64.0; 27 | 28 | void main() 29 | { 30 | // Calculate view-space coordinate 31 | vec4 P = modelViewMatrix * vec4(position, 1.0); 32 | 33 | // Calculate normal in view space 34 | vec3 N = mat3(modelViewMatrix) * normal; 35 | 36 | // Calculate view-space light vector 37 | vec3 L = lightPosition - P.xyz; 38 | 39 | // Calculate view vector 40 | vec3 V = -P.xyz; 41 | 42 | N = normalize(N); 43 | L = normalize(L); 44 | V = normalize(V); 45 | 46 | // Calculate the reflection of the light source in the surface 47 | vec3 R = reflect(-L, N); 48 | 49 | // Calculate the diffuse and specular highlight 50 | vec3 diffuse = max(dot(N, L), 0.0) * diffuseAlbedo; 51 | vec3 specular = pow(max(dot(R, V), 0.0), specularPower) * specularAlbedo; 52 | 53 | // Send the final light color and texture coordinates to the fragment shader 54 | vs_out.light = ambient + diffuse + specular; 55 | vs_out.texCoord = texCoord; 56 | 57 | // Calculate the clip-space position of each vertex 58 | gl_Position = projectionMatrix * P; 59 | } 60 | -------------------------------------------------------------------------------- /resources/shaders/lighting/point-light.vert: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hardware/ObjectViewer/718922e00a6f3e83510e6091f7630ac3c0e5066b/resources/shaders/lighting/point-light.vert -------------------------------------------------------------------------------- /resources/shaders/lighting/rim-lighting.frag: -------------------------------------------------------------------------------- 1 | #version 430 core 2 | 3 | /* 4 | PER-FRAGMENT LIGHTING (PHONG SHADING IMPLEMENTATION + RIM LIGHT EFFECT) 5 | */ 6 | 7 | in VS_OUT 8 | { 9 | vec3 N; 10 | vec3 L; 11 | vec3 V; 12 | 13 | vec2 texCoord; 14 | } fs_in; 15 | 16 | out vec4 FragColor; 17 | 18 | // Texture sampler 19 | uniform sampler2D texColor; 20 | 21 | // Material properties 22 | uniform vec3 diffuseAlbedo = vec3(1.0, 1.0, 1.0); 23 | uniform vec3 specularAlbedo = vec3(0.7); 24 | 25 | uniform float specularPower = 64.0; 26 | 27 | vec3 calculateRim(vec3 N, vec3 V) 28 | { 29 | // Calculate the rim factor 30 | float f = 1.0 - dot(N, V); 31 | 32 | // Constrain it to the range 0 to 1 using a smooth step function 33 | f = smoothstep(0.0, 1.0, f); 34 | 35 | // Raise it to the rim exponent 36 | f = pow(f, rimPower); 37 | 38 | // Finally, multiply it by the rim color 39 | return f * rimColor; 40 | } 41 | 42 | void main() 43 | { 44 | // Normalize the incoming N, L and V vectors 45 | vec3 N = normalize(fs_in.N); 46 | vec3 L = normalize(fs_in.L); 47 | vec3 V = normalize(fs_in.V); 48 | 49 | // Calculate R locally 50 | vec3 R = reflect(-L, N); 51 | 52 | // Compute the diffuse and specular components + rim effect for each fragment 53 | vec3 diffuse = max(dot(N, L), 0.0) * diffuseAlbedo; 54 | vec3 specular = pow(max(dot(R, V), 0.0), specularPower) * specularAlbedo; 55 | vec3 rim = calculateRim(N, V); 56 | 57 | // Write final color to the framebuffer 58 | FragColor = texture(texColor, fs_in.texCoord.xy) * vec4(diffuse + specular + rim, 1.0); 59 | } 60 | -------------------------------------------------------------------------------- /resources/shaders/lighting/rim-lighting.vert: -------------------------------------------------------------------------------- 1 | #version 430 core 2 | 3 | /* 4 | PER-FRAGMENT LIGHTING (PHONG SHADING IMPLEMENTATION + RIM LIGHT EFFECT) 5 | */ 6 | 7 | in vec3 position; 8 | in vec2 texCoord; 9 | in vec3 normal; 10 | 11 | out VS_OUT 12 | { 13 | vec3 N; 14 | vec3 L; 15 | vec3 V; 16 | 17 | vec2 texCoord; 18 | } vs_out; 19 | 20 | uniform mat4 modelViewMatrix; 21 | uniform mat4 projectionMatrix; 22 | 23 | // Position of light 24 | uniform vec3 lightPosition = vec3(100.0, 100.0, 100.0); 25 | 26 | void main() 27 | { 28 | // Calculate view-space coordinate 29 | vec4 P = modelViewMatrix * vec4(position, 1.0); 30 | 31 | // Calculate normal in view-space 32 | vs_out.N = mat3(modelViewMatrix) * normal; 33 | 34 | // Calculate view-space light vector 35 | vs_out.L = lightPosition - P.xyz; 36 | 37 | // Calculate view vector 38 | vs_out.V = -P.xyz; 39 | 40 | // Send texture coordinates to the fragment shader 41 | vs_out.texCoord = texCoord; 42 | 43 | // Calculate the clip-space position of each vertex 44 | gl_Position = projectionMatrix * P; 45 | } 46 | -------------------------------------------------------------------------------- /resources/textures/crate.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hardware/ObjectViewer/718922e00a6f3e83510e6091f7630ac3c0e5066b/resources/textures/crate.jpg -------------------------------------------------------------------------------- /resources/textures/grass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hardware/ObjectViewer/718922e00a6f3e83510e6091f7630ac3c0e5066b/resources/textures/grass.png -------------------------------------------------------------------------------- /resources/textures/rock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hardware/ObjectViewer/718922e00a6f3e83510e6091f7630ac3c0e5066b/resources/textures/rock.png -------------------------------------------------------------------------------- /resources/textures/snowrocks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hardware/ObjectViewer/718922e00a6f3e83510e6091f7630ac3c0e5066b/resources/textures/snowrocks.png -------------------------------------------------------------------------------- /resources/textures/white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hardware/ObjectViewer/718922e00a6f3e83510e6091f7630ac3c0e5066b/resources/textures/white.png -------------------------------------------------------------------------------- /shaders.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | resources/shaders/basic.frag 4 | resources/shaders/basic.vert 5 | 6 | 7 | resources/shaders/lighting/normal-mapping.frag 8 | resources/shaders/lighting/normal-mapping.vert 9 | resources/shaders/lighting/per-fragment-blinn-phong.frag 10 | resources/shaders/lighting/per-fragment-blinn-phong.vert 11 | resources/shaders/lighting/per-fragment-phong.frag 12 | resources/shaders/lighting/per-fragment-phong.vert 13 | resources/shaders/lighting/per-vertex-phong.frag 14 | resources/shaders/lighting/per-vertex-phong.vert 15 | resources/shaders/lighting/point-light.vert 16 | resources/shaders/lighting/rim-lighting.frag 17 | resources/shaders/lighting/rim-lighting.vert 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/helpers/MathUtils.h: -------------------------------------------------------------------------------- 1 | #ifndef MATHUTILS_H 2 | #define MATHUTILS_H 3 | 4 | #include 5 | 6 | #include 7 | #include 8 | #include 9 | 10 | namespace Math 11 | { 12 | namespace Vector2D 13 | { 14 | const QVector2D ZERO = QVector2D(0.0f, 0.0f); 15 | 16 | const QVector2D UNIT_X = QVector2D(1.0f, 0.0f); 17 | const QVector2D UNIT_Y = QVector2D(0.0f, 1.0f); 18 | 19 | const QVector2D NEGATIVE_UNIT_X = QVector2D(-1.0f, 0.0f); 20 | const QVector2D NEGATIVE_UNIT_Y = QVector2D( 0.0f, -1.0f); 21 | 22 | const QVector2D UNIT_SCALE = QVector2D(1.0f, 1.0f); 23 | } 24 | 25 | namespace Vector3D 26 | { 27 | const QVector3D ZERO = QVector3D(0.0f, 0.0f, 0.0f); 28 | 29 | const QVector3D UNIT_X = QVector3D(1.0f, 0.0f, 0.0f); 30 | const QVector3D UNIT_Y = QVector3D(0.0f, 1.0f, 0.0f); 31 | const QVector3D UNIT_Z = QVector3D(0.0f, 0.0f, 1.0f); 32 | 33 | const QVector3D NEGATIVE_UNIT_X = QVector3D(-1.0f, 0.0f, 0.0f); 34 | const QVector3D NEGATIVE_UNIT_Y = QVector3D( 0.0f, -1.0f, 0.0f); 35 | const QVector3D NEGATIVE_UNIT_Z = QVector3D( 0.0f, 0.0f, -1.0f); 36 | 37 | const QVector3D UNIT_SCALE = QVector3D(1.0f, 1.0f, 1.0f); 38 | } 39 | 40 | namespace Vector4D 41 | { 42 | const QVector4D ZERO = QVector4D(0.0f, 0.0f, 0.0f, 0.0f); 43 | } 44 | } 45 | 46 | #endif // MATHUTILS_H 47 | -------------------------------------------------------------------------------- /src/helpers/shaders.cpp: -------------------------------------------------------------------------------- 1 | #include "shaders.h" 2 | 3 | Shaders::Shaders() 4 | : m_shader(new QOpenGLShaderProgram) 5 | {} 6 | 7 | Shaders::~Shaders() 8 | { 9 | // m_shader->release(); -> VALGRIND ERROR : Invalid read of size 8 10 | } 11 | 12 | void Shaders::setVertexShader(const QString& vertexShader) 13 | { 14 | if( ! m_shader->addShaderFromSourceFile(QOpenGLShader::Vertex, vertexShader) ) 15 | qCritical() << "Could not compile vertex shader. Log : " << m_shader->log(); 16 | } 17 | 18 | void Shaders::setTessellationControlShader(const QString& tessellationControlShader) 19 | { 20 | if( ! m_shader->addShaderFromSourceFile(QOpenGLShader::TessellationControl, tessellationControlShader) ) 21 | qCritical() << "Could not compile tessellation control shader. Log : " << m_shader->log(); 22 | } 23 | 24 | void Shaders::setTessellationEvaluationShader(const QString& tessellationEvaluationShader) 25 | { 26 | if( ! m_shader->addShaderFromSourceFile(QOpenGLShader::TessellationEvaluation, tessellationEvaluationShader) ) 27 | qCritical() << "Could not compile tessellation evaluation shader. Log : " << m_shader->log(); 28 | } 29 | 30 | void Shaders::setGeometryShader(const QString& geometryShader) 31 | { 32 | if( ! m_shader->addShaderFromSourceFile(QOpenGLShader::Geometry, geometryShader) ) 33 | qCritical() << "Could not compile geometry shader. Log : " << m_shader->log(); 34 | } 35 | 36 | void Shaders::setFragmentShader(const QString& fragmentShader) 37 | { 38 | if( ! m_shader->addShaderFromSourceFile(QOpenGLShader::Fragment, fragmentShader) ) 39 | qCritical() << "Could not compile fragment shader. Log : " << m_shader->log(); 40 | } 41 | 42 | void Shaders::setComputeShader(const QString& computeShader) 43 | { 44 | if( ! m_shader->addShaderFromSourceFile(QOpenGLShader::Compute, computeShader) ) 45 | qCritical() << "Could not compile compute shader. Log : " << m_shader->log(); 46 | } 47 | 48 | void Shaders::setShader(const QOpenGLShaderProgramPtr& shader) 49 | { 50 | m_shader = shader; 51 | } 52 | 53 | QOpenGLShaderProgramPtr Shaders::shader() const 54 | { 55 | return m_shader; 56 | } 57 | -------------------------------------------------------------------------------- /src/helpers/shaders.h: -------------------------------------------------------------------------------- 1 | #ifndef SHADERS_H 2 | #define SHADERS_H 3 | 4 | #include 5 | #include 6 | 7 | typedef QSharedPointer QOpenGLShaderProgramPtr; 8 | 9 | class Shaders 10 | { 11 | 12 | public: 13 | Shaders(); 14 | ~Shaders(); 15 | 16 | void setVertexShader(const QString& vertexShader); 17 | void setTessellationControlShader(const QString& tessellationControlShader); 18 | void setTessellationEvaluationShader(const QString& tessellationEvaluationShader); 19 | void setGeometryShader(const QString& geometryShader); 20 | void setFragmentShader(const QString& fragmentShader); 21 | void setComputeShader(const QString& computeShader); 22 | 23 | void setShader(const QOpenGLShaderProgramPtr& shader); 24 | QOpenGLShaderProgramPtr shader() const; 25 | 26 | private: 27 | QOpenGLShaderProgramPtr m_shader; 28 | }; 29 | 30 | typedef QSharedPointer ShadersPtr; 31 | 32 | #endif // SHADERS_H 33 | -------------------------------------------------------------------------------- /src/main.cpp: -------------------------------------------------------------------------------- 1 | #include "ui/mainwindow.h" 2 | #include 3 | #include 4 | #include 5 | 6 | int main(int argc, char *argv[]) 7 | { 8 | QApplication a(argc, argv); 9 | 10 | QPixmap pixmap(":/resources/images/splash.png"); 11 | QSplashScreen splash(pixmap); 12 | 13 | splash.show(); 14 | splash.showMessage("LOADING MESHES...", Qt::AlignHCenter | Qt::AlignBottom, Qt::white); 15 | 16 | qApp->processEvents(); 17 | 18 | MainWindow window; 19 | window.show(); 20 | 21 | splash.finish(&window); 22 | 23 | return a.exec(); 24 | } 25 | -------------------------------------------------------------------------------- /src/materials/abstractmaterialmanager.cpp: -------------------------------------------------------------------------------- 1 | #include "abstractmaterialmanager.h" 2 | 3 | AbstractMaterialManager::AbstractMaterialManager() {} 4 | AbstractMaterialManager::~AbstractMaterialManager() {} 5 | -------------------------------------------------------------------------------- /src/materials/abstractmaterialmanager.h: -------------------------------------------------------------------------------- 1 | #ifndef ABSTRACTMATERIALMANAGER_H 2 | #define ABSTRACTMATERIALMANAGER_H 3 | 4 | #include 5 | #include 6 | 7 | #include 8 | 9 | using namespace std; 10 | 11 | class Material; 12 | 13 | class AbstractMaterialManager 14 | { 15 | 16 | public: 17 | AbstractMaterialManager(); 18 | virtual ~AbstractMaterialManager() = 0; 19 | 20 | virtual shared_ptr getMaterial(const string& name) = 0; 21 | 22 | virtual shared_ptr addMaterial(const string& name, 23 | const QVector4D& ambientColor, 24 | const QVector4D& diffuseColor, 25 | const QVector4D& specularColor, 26 | const QVector4D& emissiveColor, 27 | float shininess, 28 | float shininessStrength, 29 | int twoSided, 30 | int blendMode, 31 | bool alphaBlending, 32 | bool hasTexture) = 0; 33 | 34 | }; 35 | 36 | #endif // ABSTRACTMATERIALMANAGER_H 37 | -------------------------------------------------------------------------------- /src/materials/abstracttexturemanager.cpp: -------------------------------------------------------------------------------- 1 | #include "abstracttexturemanager.h" 2 | 3 | AbstractTextureManager::AbstractTextureManager() {} 4 | AbstractTextureManager::~AbstractTextureManager() {} 5 | -------------------------------------------------------------------------------- /src/materials/abstracttexturemanager.h: -------------------------------------------------------------------------------- 1 | #ifndef ABSTRACTTEXTUREMANAGER_H 2 | #define ABSTRACTTEXTUREMANAGER_H 3 | 4 | #include 5 | #include 6 | 7 | using namespace std; 8 | 9 | class Texture; 10 | 11 | class AbstractTextureManager 12 | { 13 | 14 | public: 15 | AbstractTextureManager(); 16 | virtual ~AbstractTextureManager() = 0; 17 | 18 | virtual shared_ptr getTexture(const string& name) = 0; 19 | virtual shared_ptr addTexture(const string& name, const string& filename) = 0; 20 | 21 | }; 22 | 23 | 24 | #endif // ABSTRACTTEXTUREMANAGER_H 25 | -------------------------------------------------------------------------------- /src/materials/material.h: -------------------------------------------------------------------------------- 1 | #ifndef MATERIAL_H 2 | #define MATERIAL_H 3 | 4 | #include 5 | #include "../helpers/opengluniformbuffer.h" 6 | 7 | #include 8 | 9 | class Material 10 | { 11 | 12 | public: 13 | Material(const string& name, 14 | const QVector4D& ambientColor, 15 | const QVector4D& diffuseColor, 16 | const QVector4D& specularColor, 17 | const QVector4D& emissiveColor, 18 | float shininess, 19 | float shininessStrength, 20 | int twoSided, 21 | int blendMode, 22 | bool alphaBlending, 23 | bool hasTexture, 24 | GLuint programHandle); 25 | 26 | virtual ~Material(); 27 | 28 | void setName(const string& name) { m_name = name; } 29 | string name() const { return m_name; } 30 | 31 | bool isTranslucent() const { return m_alphaBlending; } 32 | 33 | void bind(); 34 | 35 | private: 36 | void init(); 37 | void fillBuffer(vector& buffer, GLint* offsets); 38 | 39 | string m_name; 40 | 41 | QVector4D m_ambientColor; 42 | QVector4D m_diffuseColor; 43 | QVector4D m_specularColor; 44 | QVector4D m_emissiveColor; 45 | 46 | float m_shininess; 47 | float m_shininessStrength; 48 | 49 | int m_twoSided; 50 | int m_blendMode; 51 | bool m_alphaBlending; 52 | bool m_hasTexture; 53 | 54 | enum BlendMode { 55 | Default = 0x0, 56 | Additive = 0x1 57 | }; 58 | 59 | OpenGLUniformBuffer m_uniformsBuffer; 60 | 61 | }; 62 | 63 | #endif // MATERIAL_H 64 | -------------------------------------------------------------------------------- /src/materials/materialmanager.cpp: -------------------------------------------------------------------------------- 1 | #include "materialmanager.h" 2 | 3 | MaterialManager::MaterialManager(GLuint programHandle) 4 | : m_programHandle(programHandle) 5 | {} 6 | 7 | MaterialManager::~MaterialManager() {} 8 | 9 | shared_ptr MaterialManager::getMaterial(const string& name) 10 | { 11 | if(m_materials.find(name) != m_materials.end()) 12 | { 13 | return m_materials[name]; 14 | } 15 | 16 | return shared_ptr(nullptr); 17 | } 18 | 19 | shared_ptr MaterialManager::addMaterial(const string& name, 20 | const QVector4D& ambientColor, 21 | const QVector4D& diffuseColor, 22 | const QVector4D& specularColor, 23 | const QVector4D& emissiveColor, 24 | float shininess, 25 | float shininessStrength, 26 | int twoSided, 27 | int blendMode, 28 | bool alphaBlending, 29 | bool hasTexture) 30 | { 31 | if(m_materials.find(name) != m_materials.end() && m_materials[name].get() != nullptr) 32 | { 33 | return m_materials[name]; 34 | } 35 | 36 | m_materials[name] = make_shared(name, 37 | ambientColor, 38 | diffuseColor, 39 | specularColor, 40 | emissiveColor, 41 | shininess, 42 | shininessStrength, 43 | twoSided, 44 | blendMode, 45 | alphaBlending, 46 | hasTexture, 47 | m_programHandle); 48 | 49 | return m_materials[name]; 50 | } 51 | -------------------------------------------------------------------------------- /src/materials/materialmanager.h: -------------------------------------------------------------------------------- 1 | #ifndef MATERIALMANAGER_H 2 | #define MATERIALMANAGER_H 3 | 4 | #include "abstractmaterialmanager.h" 5 | #include "material.h" 6 | 7 | #include 8 | 9 | using namespace std; 10 | 11 | class MaterialManager : public AbstractMaterialManager 12 | { 13 | 14 | public: 15 | MaterialManager(GLuint programHandle); 16 | virtual ~MaterialManager(); 17 | 18 | virtual shared_ptr getMaterial(const string& name); 19 | 20 | virtual shared_ptr addMaterial(const string& name, 21 | const QVector4D& ambientColor, 22 | const QVector4D& diffuseColor, 23 | const QVector4D& specularColor, 24 | const QVector4D& emissiveColor, 25 | float shininess, 26 | float shininessStrength, 27 | int twoSided, 28 | int blendMode, 29 | bool alphaBlending, 30 | bool hasTexture); 31 | 32 | private: 33 | map> m_materials; 34 | GLuint m_programHandle; 35 | }; 36 | 37 | #endif // MATERIALMANAGER_H 38 | -------------------------------------------------------------------------------- /src/materials/texture.h: -------------------------------------------------------------------------------- 1 | #ifndef TEXTURE_H 2 | #define TEXTURE_H 3 | 4 | #include 5 | 6 | #include "ImageMagick/Magick++.h" 7 | 8 | #include 9 | #include 10 | 11 | using namespace std; 12 | 13 | class QOpenGLFunctions_4_3_Core; 14 | 15 | class Texture 16 | { 17 | 18 | public: 19 | enum TextureType 20 | { 21 | Texture1D = GL_TEXTURE_1D, 22 | Texture2D = GL_TEXTURE_2D, 23 | Texture3D = GL_TEXTURE_3D, 24 | TextureCubeMap = GL_TEXTURE_CUBE_MAP 25 | }; 26 | 27 | Texture(const string& fileName, TextureType type = Texture2D); 28 | Texture(const QImage& image, TextureType type = Texture2D); 29 | virtual ~Texture(); 30 | 31 | void bind(GLenum textureUnit); 32 | void release(); 33 | void destroy(); 34 | 35 | TextureType type() const { return m_type; } 36 | GLuint textureId() const { return m_textureId; } 37 | 38 | private: 39 | void init(); 40 | bool load(); 41 | 42 | QImage m_qimage; 43 | 44 | Magick::Image m_image; 45 | Magick::Blob m_blob; 46 | 47 | string m_fileName; 48 | TextureType m_type; 49 | GLuint m_textureId; 50 | 51 | QOpenGLFunctions_4_3_Core* m_funcs; 52 | 53 | }; 54 | 55 | #endif // TEXTURE_H 56 | -------------------------------------------------------------------------------- /src/materials/texturemanager.cpp: -------------------------------------------------------------------------------- 1 | #include "texturemanager.h" 2 | #include "texture.h" 3 | 4 | #include 5 | 6 | TextureManager::TextureManager() {} 7 | TextureManager::~TextureManager() {} 8 | 9 | shared_ptr TextureManager::getTexture(const string& name) 10 | { 11 | if(m_textures.find(name) != m_textures.end()) 12 | { 13 | return m_textures[name]; 14 | } 15 | 16 | return shared_ptr(nullptr); 17 | } 18 | 19 | shared_ptr TextureManager::addTexture(const string& name, const string& filename) 20 | { 21 | if(m_textures.find(name) != m_textures.end() && m_textures[name].get() != nullptr) 22 | { 23 | return m_textures[name]; 24 | } 25 | 26 | m_textures[name] = make_shared(filename); 27 | 28 | qDebug() << "Loaded texture :" << QString::fromStdString(filename); 29 | 30 | return m_textures[name]; 31 | } 32 | -------------------------------------------------------------------------------- /src/materials/texturemanager.h: -------------------------------------------------------------------------------- 1 | #ifndef TEXTUREMANAGER_H 2 | #define TEXTUREMANAGER_H 3 | 4 | #include "abstracttexturemanager.h" 5 | 6 | #include 7 | 8 | using namespace std; 9 | 10 | class Texture; 11 | 12 | class TextureManager : public AbstractTextureManager 13 | { 14 | 15 | public: 16 | TextureManager(); 17 | virtual ~TextureManager(); 18 | 19 | virtual shared_ptr getTexture(const string& name); 20 | virtual shared_ptr addTexture(const string& name, const string& filename); 21 | 22 | private: 23 | map> m_textures; 24 | 25 | }; 26 | 27 | #endif // TEXTUREMANAGER_H 28 | -------------------------------------------------------------------------------- /src/objects/abstractmeshmanager.cpp: -------------------------------------------------------------------------------- 1 | #include "abstractmeshmanager.h" 2 | 3 | AbstractMeshManager::AbstractMeshManager() {} 4 | AbstractMeshManager::~AbstractMeshManager() {} 5 | -------------------------------------------------------------------------------- /src/objects/abstractmeshmanager.h: -------------------------------------------------------------------------------- 1 | #ifndef ABSTRACTMESHMANAGER_H 2 | #define ABSTRACTMESHMANAGER_H 3 | 4 | #include 5 | #include 6 | 7 | #include 8 | #include 9 | 10 | using namespace std; 11 | 12 | class Mesh; 13 | 14 | class AbstractMeshManager 15 | { 16 | 17 | public: 18 | AbstractMeshManager(); 19 | virtual ~AbstractMeshManager() = 0; 20 | 21 | virtual shared_ptr getMesh(const string& name) = 0; 22 | 23 | virtual shared_ptr addMesh(const string& name, 24 | unsigned int numIndices, 25 | unsigned int baseVertex, 26 | unsigned int baseIndex) = 0; 27 | 28 | }; 29 | 30 | #endif // ABSTRACTMESHMANAGER_H 31 | -------------------------------------------------------------------------------- /src/objects/abstractmodel.cpp: -------------------------------------------------------------------------------- 1 | #include "abstractmodel.h" 2 | 3 | AbstractModel::AbstractModel() {} 4 | AbstractModel::~AbstractModel() {} 5 | -------------------------------------------------------------------------------- /src/objects/abstractmodel.h: -------------------------------------------------------------------------------- 1 | #ifndef ABSTRACTMODEL_H 2 | #define ABSTRACTMODEL_H 3 | 4 | #include 5 | 6 | #include 7 | #include 8 | 9 | #include 10 | #include 11 | 12 | using namespace std; 13 | 14 | struct MeshData 15 | { 16 | string name; 17 | 18 | unsigned int numIndices; 19 | unsigned int baseVertex; 20 | unsigned int baseIndex; 21 | }; 22 | 23 | struct TextureData 24 | { 25 | string filename; 26 | bool hasTexture; 27 | }; 28 | 29 | struct MaterialData 30 | { 31 | string name; 32 | 33 | QVector4D ambientColor; 34 | QVector4D diffuseColor; 35 | QVector4D specularColor; 36 | QVector4D emissiveColor; 37 | 38 | float shininess; 39 | float shininessStrength; 40 | 41 | int twoSided; 42 | int blendMode; 43 | bool alphaBlending; 44 | }; 45 | 46 | struct ModelData 47 | { 48 | MeshData meshData; 49 | TextureData textureData; 50 | MaterialData materialData; 51 | }; 52 | 53 | typedef QSharedPointer QOpenGLShaderProgramPtr; 54 | typedef QSharedPointer QOpenGLVertexArrayObjectPtr; 55 | 56 | class AbstractModel 57 | { 58 | 59 | public: 60 | AbstractModel(); 61 | virtual ~AbstractModel() = 0; 62 | 63 | virtual void render() = 0; 64 | 65 | }; 66 | 67 | #endif // ABSTRACTMODEL_H 68 | -------------------------------------------------------------------------------- /src/objects/abstractmodelmanager.cpp: -------------------------------------------------------------------------------- 1 | #include "abstractmodelmanager.h" 2 | 3 | AbstractModelManager::AbstractModelManager() {} 4 | AbstractModelManager::~AbstractModelManager() {} 5 | -------------------------------------------------------------------------------- /src/objects/abstractmodelmanager.h: -------------------------------------------------------------------------------- 1 | #ifndef ABSTRACTMODELMANAGER_H 2 | #define ABSTRACTMODELMANAGER_H 3 | 4 | #include 5 | #include 6 | 7 | #include "modelloader.h" 8 | 9 | using namespace std; 10 | 11 | class AbstractModel; 12 | class Model; 13 | 14 | class AbstractModelManager 15 | { 16 | 17 | public: 18 | AbstractModelManager(); 19 | virtual ~AbstractModelManager() = 0; 20 | 21 | virtual AbstractModel* getModel(const string& name) = 0; 22 | 23 | virtual shared_ptr loadModel(const string& name, 24 | const string& filename, 25 | const QOpenGLShaderProgramPtr& shader) = 0; 26 | }; 27 | 28 | #endif // ABSTRACTMODELMANAGER_H 29 | -------------------------------------------------------------------------------- /src/objects/abstractscene.cpp: -------------------------------------------------------------------------------- 1 | #include "abstractscene.h" 2 | 3 | AbstractScene::AbstractScene(QObject* parent) : QObject(parent) {} 4 | -------------------------------------------------------------------------------- /src/objects/abstractscene.h: -------------------------------------------------------------------------------- 1 | #ifndef ABSTRACTSCENE_H 2 | #define ABSTRACTSCENE_H 3 | 4 | #include 5 | 6 | class QOpenGLContext; 7 | 8 | /** 9 | * @class AbstractScene 10 | * @brief Classe abtraite representant une scène 11 | * 12 | * Une scène permet le rendu et la gestion d'objets avec OpenGL 13 | */ 14 | class AbstractScene : public QObject 15 | { 16 | public: 17 | AbstractScene(QObject* parent = 0); 18 | 19 | /** 20 | * Chargement des shaders, des VBOs, IBOs, des textures...etc 21 | */ 22 | virtual void initialize() = 0; 23 | 24 | /** 25 | * Permet de mettre à jour la scène 26 | */ 27 | virtual void update(float t) = 0; 28 | 29 | /** 30 | * Permet de redessiner la scène 31 | */ 32 | virtual void render(double currentTime) = 0; 33 | 34 | /** 35 | * Permet de redimensionner la scène 36 | */ 37 | virtual void resize(int width, int height) = 0; 38 | 39 | /** 40 | * Méthodes d'accès au contexte OpenGL de la scène 41 | */ 42 | inline void setContext(QOpenGLContext* context) { m_context = context; } 43 | inline QOpenGLContext* context() const { return m_context; } 44 | 45 | protected: 46 | QOpenGLContext* m_context; 47 | 48 | }; 49 | 50 | #endif // ABSTRACTSCENE_H 51 | -------------------------------------------------------------------------------- /src/objects/camera_p.h: -------------------------------------------------------------------------------- 1 | #ifndef CAMERA_P_H 2 | #define CAMERA_P_H 3 | 4 | #include 5 | #include 6 | 7 | #include "../helpers/MathUtils.h" 8 | 9 | using namespace Math; 10 | 11 | class CameraPrivate 12 | { 13 | 14 | public: 15 | CameraPrivate(Camera* c) 16 | : q_ptr(c), 17 | m_position(Vector3D::UNIT_Z), 18 | m_upVector(Vector3D::UNIT_Y), 19 | m_viewCenter(Vector3D::ZERO), 20 | m_cameraToCenter(Vector3D::NEGATIVE_UNIT_Z), 21 | m_projectionType(Camera::PerspectiveProjection), 22 | m_nearPlane(0.1f), 23 | m_farPlane(1024.0f), 24 | m_fieldOfView(75.0f), 25 | m_aspectRatio(1.0f), 26 | m_left(-0.5f), 27 | m_right(0.5f), 28 | m_bottom(-0.5f), 29 | m_top(0.5f), 30 | m_viewMatrixDirty(true), 31 | m_viewProjectionMatrixDirty(true) 32 | { 33 | updateOrthogonalProjection(); 34 | } 35 | 36 | ~CameraPrivate() {} 37 | 38 | inline void updatePerspectiveProjection() 39 | { 40 | m_projectionMatrix.setToIdentity(); 41 | m_projectionMatrix.perspective(m_fieldOfView, m_aspectRatio, m_nearPlane, m_farPlane); 42 | m_viewProjectionMatrixDirty = true; 43 | } 44 | 45 | inline void updateOrthogonalProjection() 46 | { 47 | m_projectionMatrix.setToIdentity(); 48 | m_projectionMatrix.ortho(m_left, m_right, m_bottom, m_top, m_nearPlane, m_farPlane); 49 | m_viewProjectionMatrixDirty = true; 50 | } 51 | 52 | Q_DECLARE_PUBLIC(Camera) 53 | 54 | Camera* q_ptr; 55 | 56 | QVector3D m_position; 57 | QVector3D m_upVector; 58 | QVector3D m_viewCenter; 59 | QVector3D m_cameraToCenter; 60 | 61 | Camera::ProjectionType m_projectionType; 62 | 63 | float m_nearPlane; 64 | float m_farPlane; 65 | float m_fieldOfView; 66 | float m_aspectRatio; 67 | 68 | float m_left; 69 | float m_right; 70 | float m_bottom; 71 | float m_top; 72 | 73 | mutable QMatrix4x4 m_viewMatrix; 74 | mutable QMatrix4x4 m_projectionMatrix; 75 | mutable QMatrix4x4 m_viewProjectionMatrix; 76 | 77 | mutable bool m_viewMatrixDirty; 78 | mutable bool m_viewProjectionMatrixDirty; 79 | 80 | }; 81 | 82 | #endif // CAMERA_P_H 83 | -------------------------------------------------------------------------------- /src/objects/mesh.cpp: -------------------------------------------------------------------------------- 1 | #include "mesh.h" 2 | 3 | Mesh::Mesh(const string& name, 4 | unsigned int numIndices, 5 | unsigned int baseVertex, 6 | unsigned int baseIndex) 7 | : m_name(name), 8 | m_numIndices(numIndices), 9 | m_baseVertex(baseVertex), 10 | m_baseIndex(baseIndex) 11 | {} 12 | 13 | Mesh::~Mesh() {} 14 | -------------------------------------------------------------------------------- /src/objects/mesh.h: -------------------------------------------------------------------------------- 1 | #ifndef MESH_H 2 | #define MESH_H 3 | 4 | #include 5 | 6 | using namespace std; 7 | 8 | class Mesh 9 | { 10 | 11 | public: 12 | Mesh(const string& name, 13 | unsigned int numIndices, 14 | unsigned int baseVertex, 15 | unsigned int baseIndex); 16 | 17 | virtual ~Mesh(); 18 | 19 | void setName(const string& name) { m_name = name; } 20 | string name() const { return m_name; } 21 | 22 | unsigned int getNumIndices() const { return m_numIndices; } 23 | unsigned int getBaseVertex() const { return m_baseVertex; } 24 | unsigned int getBaseIndex() const { return m_baseIndex; } 25 | 26 | private: 27 | string m_name; 28 | 29 | unsigned int m_numIndices; 30 | unsigned int m_baseVertex; 31 | unsigned int m_baseIndex; 32 | 33 | }; 34 | 35 | #endif // MESH_H 36 | -------------------------------------------------------------------------------- /src/objects/meshmanager.cpp: -------------------------------------------------------------------------------- 1 | #include "meshmanager.h" 2 | #include "mesh.h" 3 | 4 | MeshManager::MeshManager() {} 5 | MeshManager::~MeshManager() {} 6 | 7 | shared_ptr MeshManager::getMesh(const string& name) 8 | { 9 | if(m_meshes.find(name) != m_meshes.end()) 10 | { 11 | return m_meshes[name]; 12 | } 13 | 14 | return shared_ptr(nullptr); 15 | } 16 | 17 | shared_ptr MeshManager::addMesh(const string& name, 18 | unsigned int numIndices, 19 | unsigned int baseVertex, 20 | unsigned int baseIndex) 21 | { 22 | if(m_meshes.find(name) != m_meshes.end() && m_meshes[name].get() != nullptr) 23 | { 24 | return m_meshes[name]; 25 | } 26 | 27 | m_meshes[name] = make_shared(name, numIndices, baseVertex, baseIndex); 28 | 29 | return m_meshes[name]; 30 | } 31 | -------------------------------------------------------------------------------- /src/objects/meshmanager.h: -------------------------------------------------------------------------------- 1 | #ifndef MESHMANAGER_H 2 | #define MESHMANAGER_H 3 | 4 | #include "abstractmeshmanager.h" 5 | 6 | #include 7 | 8 | using namespace std; 9 | 10 | class Mesh; 11 | 12 | class MeshManager : public AbstractMeshManager 13 | { 14 | 15 | public: 16 | MeshManager(); 17 | virtual ~MeshManager(); 18 | 19 | virtual shared_ptr getMesh(const string& name); 20 | 21 | virtual shared_ptr addMesh(const string& name, 22 | unsigned int numIndices, 23 | unsigned int baseVertex, 24 | unsigned int baseIndex); 25 | 26 | private: 27 | map> m_meshes; 28 | 29 | }; 30 | 31 | #endif // MESHMANAGER_H 32 | -------------------------------------------------------------------------------- /src/objects/model.h: -------------------------------------------------------------------------------- 1 | #ifndef MODEL_H 2 | #define MODEL_H 3 | 4 | #include "abstractmodel.h" 5 | 6 | #include 7 | #include 8 | 9 | using namespace std; 10 | 11 | class Scene; 12 | class Mesh; 13 | class Texture; 14 | class Material; 15 | class AbstractMeshManager; 16 | class AbstractMaterialManager; 17 | class AbstractTextureManager; 18 | 19 | class QOpenGLFunctions_4_3_Core; 20 | 21 | class Model : public AbstractModel 22 | { 23 | 24 | public: 25 | Model(Scene* scene, 26 | const QOpenGLVertexArrayObjectPtr& vao); 27 | 28 | Model(Scene* scene, 29 | const QOpenGLVertexArrayObjectPtr& vao, 30 | vector> modelData); 31 | 32 | virtual ~Model(); 33 | 34 | virtual void render(); 35 | 36 | protected: 37 | Scene* m_scene; 38 | 39 | vector> m_meshes; 40 | vector> m_textures; 41 | vector> m_materials; 42 | 43 | shared_ptr m_meshManager; 44 | shared_ptr m_textureManager; 45 | shared_ptr m_materialManager; 46 | 47 | private: 48 | enum DrawingMode 49 | { 50 | Indexed, 51 | Instanced, 52 | BaseVertex 53 | }; 54 | 55 | void initialize(vector> modelData = vector>()); 56 | void drawElements(unsigned int index, int mode); 57 | void destroy(); 58 | 59 | QOpenGLVertexArrayObjectPtr m_vao; 60 | QOpenGLFunctions_4_3_Core* m_funcs; 61 | 62 | }; 63 | 64 | #endif // MODEL_H 65 | -------------------------------------------------------------------------------- /src/objects/modelloader.h: -------------------------------------------------------------------------------- 1 | #ifndef MODELLOADER_H 2 | #define MODELLOADER_H 3 | 4 | #include "abstractmodel.h" 5 | 6 | #include "assimp/Importer.hpp" 7 | #include "assimp/scene.h" 8 | #include "assimp/postprocess.h" 9 | 10 | #include 11 | #include 12 | 13 | #include 14 | 15 | using namespace std; 16 | 17 | class ModelLoader 18 | { 19 | 20 | public: 21 | ModelLoader(); 22 | virtual ~ModelLoader(); 23 | 24 | vector> loadModel(const string& filename, 25 | const QOpenGLShaderProgramPtr& shader); 26 | 27 | QOpenGLVertexArrayObjectPtr getVAO(); 28 | 29 | private: 30 | MeshData loadMesh(unsigned int index, 31 | unsigned int numVertices, 32 | unsigned int numIndices, 33 | const aiMesh* mesh); 34 | 35 | MaterialData loadMaterial(unsigned int index, const aiMaterial* material); 36 | TextureData loadTexture(const string& filename, const aiMaterial* material); 37 | 38 | void prepareVertexBuffers(); 39 | void prepareVertexContainers(const aiMesh* mesh); 40 | 41 | QOpenGLBuffer m_vertexPositionBuffer; 42 | QOpenGLBuffer m_vertexColorBuffer; 43 | QOpenGLBuffer m_vertexTexCoordBuffer; 44 | QOpenGLBuffer m_vertexNormalBuffer; 45 | QOpenGLBuffer m_vertexTangentBuffer; 46 | QOpenGLBuffer m_indexBuffer; 47 | 48 | vector m_positions; 49 | vector m_colors; 50 | vector m_texCoords; 51 | vector m_normals; 52 | vector m_tangents; 53 | vector m_indices; 54 | 55 | QOpenGLVertexArrayObjectPtr m_vao; 56 | QOpenGLShaderProgramPtr m_shader; 57 | 58 | }; 59 | 60 | #endif // MODELLOADER_H 61 | -------------------------------------------------------------------------------- /src/objects/modelmanager.cpp: -------------------------------------------------------------------------------- 1 | #include "modelmanager.h" 2 | #include "scene.h" 3 | #include "model.h" 4 | #include "abstractmodel.h" 5 | 6 | ModelManager::ModelManager(Scene* scene) 7 | : m_scene(scene), 8 | m_modelLoader(ModelLoader()) 9 | {} 10 | 11 | ModelManager::~ModelManager() {} 12 | 13 | AbstractModel* ModelManager::getModel(const string& name) 14 | { 15 | if(m_models.find(name) != m_models.end()) 16 | { 17 | return m_models[name].get(); 18 | } 19 | 20 | return nullptr; 21 | } 22 | 23 | shared_ptr ModelManager::loadModel(const string& name, 24 | const string& filename, 25 | const QOpenGLShaderProgramPtr& shader) 26 | { 27 | vector> modelData = m_modelLoader.loadModel(filename, shader); 28 | 29 | m_models[name] = make_shared(m_scene, 30 | m_modelLoader.getVAO(), 31 | modelData); 32 | 33 | return m_models[name]; 34 | } 35 | -------------------------------------------------------------------------------- /src/objects/modelmanager.h: -------------------------------------------------------------------------------- 1 | #ifndef MODELMANAGER_H 2 | #define MODELMANAGER_H 3 | 4 | #include "abstractmodelmanager.h" 5 | 6 | class Scene; 7 | class Model; 8 | class AbstractModel; 9 | 10 | class ModelManager : public AbstractModelManager 11 | { 12 | 13 | public: 14 | ModelManager(Scene* scene); 15 | virtual ~ModelManager(); 16 | 17 | virtual AbstractModel* getModel(const string& name); 18 | 19 | virtual shared_ptr loadModel(const string& name, 20 | const string& filename, 21 | const QOpenGLShaderProgramPtr& shader); 22 | 23 | private: 24 | map> m_models; 25 | Scene* m_scene; 26 | ModelLoader m_modelLoader; 27 | }; 28 | 29 | #endif // MODELMANAGER_H 30 | -------------------------------------------------------------------------------- /src/objects/object3d.h: -------------------------------------------------------------------------------- 1 | #ifndef OBJECT3D_H 2 | #define OBJECT3D_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | class Object3D : public QObject 9 | { 10 | Q_OBJECT 11 | 12 | public: 13 | Object3D(); 14 | 15 | void setPosition(const QVector3D& positionVector); 16 | void setPosition(float x, float y, float z); 17 | 18 | void setRotation(const QVector3D& rotationVector); 19 | void setRotation(float x, float y, float z); 20 | 21 | void setScale(const QVector3D& scale); 22 | void setScale(float x, float y, float z); 23 | void setScale(float scaleFactor); 24 | 25 | void translateX(float x); 26 | void translateY(float y); 27 | void translateZ(float z); 28 | 29 | void rotateX(float x); 30 | void rotateY(float y); 31 | void rotateZ(float z); 32 | 33 | void scaleX(float x); 34 | void scaleY(float y); 35 | void scaleZ(float z); 36 | 37 | const QVector3D& position() const; 38 | const QVector3D& rotation() const; 39 | const QVector3D& scale() const; 40 | 41 | const QMatrix4x4& modelMatrix(); 42 | 43 | public slots: 44 | void setObjectXPosition(int x); 45 | void setObjectYPosition(int y); 46 | void setObjectZPosition(int z); 47 | 48 | void setObjectXRotation(int x); 49 | void setObjectYRotation(int y); 50 | void setObjectZRotation(int z); 51 | 52 | void reset(); 53 | 54 | private: 55 | QVector3D m_position; 56 | QVector3D m_rotation; 57 | QVector3D m_scale; 58 | 59 | QMatrix4x4 m_modelMatrix; 60 | 61 | bool m_modelMatrixDirty; 62 | }; 63 | 64 | #endif // OBJECT3D_H 65 | -------------------------------------------------------------------------------- /src/ui/window.h: -------------------------------------------------------------------------------- 1 | #ifndef WINDOW_H 2 | #define WINDOW_H 3 | 4 | #include 5 | #include 6 | 7 | class AbstractScene; 8 | class QOpenGLContext; 9 | class Scene; 10 | 11 | /** 12 | * @class Window 13 | * @brief Classe representant la zone de rendu OpenGL 14 | * 15 | * Cette classe permet d'initialiser le contexte OpenGL et de 16 | * manipuler la scène de rendu. 17 | */ 18 | class Window : public QWindow 19 | { 20 | Q_OBJECT 21 | 22 | public: 23 | Window(QScreen* screen = 0); 24 | ~Window(); 25 | 26 | Scene* getScene(); 27 | 28 | protected: 29 | void keyPressEvent(QKeyEvent* e); 30 | void keyReleaseEvent(QKeyEvent* e); 31 | void mousePressEvent(QMouseEvent* e); 32 | void mouseReleaseEvent(QMouseEvent* e); 33 | void mouseMoveEvent(QMouseEvent* e); 34 | 35 | private: 36 | void initializeGL(); 37 | 38 | public slots: 39 | void checkAnimate(int state); 40 | void setCameraSpeed(double speed); 41 | void setCameraSensitivity(double sensitivity); 42 | 43 | protected slots: 44 | void resizeGL(); 45 | void paintGL(); 46 | void updateScene(); 47 | 48 | signals: 49 | void updateFramerate(); 50 | 51 | private: 52 | QScopedPointer m_context; 53 | AbstractScene* m_scene; 54 | 55 | QElapsedTimer m_renderTimer; 56 | QElapsedTimer m_updateTimer; 57 | 58 | QPoint m_prevPos; 59 | QPoint m_pos; 60 | 61 | bool m_leftButtonPressed; 62 | 63 | double m_cameraSpeed; 64 | double m_cameraSensitivity; 65 | }; 66 | 67 | #endif // WINDOW_H 68 | -------------------------------------------------------------------------------- /textures.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | resources/textures/crate.jpg 4 | resources/textures/grass.png 5 | resources/textures/rock.png 6 | resources/textures/snowrocks.png 7 | resources/textures/white.png 8 | 9 | 10 | --------------------------------------------------------------------------------