diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 828849a3271bd2f4f3ad612ebf6cf7b874761235..e458193142df04475e7f495f1011c3891171c07b 100755 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -328,6 +328,7 @@ set(viewer_SOURCE_FILES llfloaterimsessiontab.cpp llfloaterimsession.cpp llfloaterimcontainer.cpp + llimagefiltersmanager.cpp llimhandler.cpp llimview.cpp llinspect.cpp @@ -919,6 +920,7 @@ set(viewer_HEADER_FILES llfloaterimsessiontab.h llfloaterimsession.h llfloaterimcontainer.h + llimagefiltersmanager.h llimview.h llinspect.h llinspectavatar.h diff --git a/indra/newview/app_settings/filters/Hefe.xml b/indra/newview/app_settings/filters/Grayscale.xml similarity index 72% rename from indra/newview/app_settings/filters/Hefe.xml rename to indra/newview/app_settings/filters/Grayscale.xml index 527aaee847f8af2fc8cbf8426ca6e72e2d0f055e..101ed8233ab550e0809be18fedf9b55ebcbe108b 100755 --- a/indra/newview/app_settings/filters/Hefe.xml +++ b/indra/newview/app_settings/filters/Grayscale.xml @@ -2,22 +2,20 @@ <array> <array> <string>linearize</string> - <real>0.0</real> + <real>0.01</real> <real>1.0</real> <real>1.0</real> <real>1.0</real> </array> - <array> - <string>blend</string> - <real>4.0</real> - <real>0.5</real> - </array> <array> <string>contrast</string> - <real>2.0</real> + <real>0.8</real> <real>1.0</real> <real>1.0</real> <real>1.0</real> </array> + <array> + <string>grayscale</string> + </array> </array> </llsd> diff --git a/indra/newview/app_settings/filters/Lomofi.xml b/indra/newview/app_settings/filters/GreenGray.xml similarity index 66% rename from indra/newview/app_settings/filters/Lomofi.xml rename to indra/newview/app_settings/filters/GreenGray.xml index f5ec911e5935d78801de0c822423541f23d28774..dce5ab3e9e81b99bfc58d2c38570a0892c04246e 100755 --- a/indra/newview/app_settings/filters/Lomofi.xml +++ b/indra/newview/app_settings/filters/GreenGray.xml @@ -1,23 +1,24 @@ <llsd> <array> - <array> - <string>blend</string> - <real>4.0</real> - <real>0.0</real> - </array> <array> <string>linearize</string> - <real>0.2</real> + <real>0.1</real> <real>1.0</real> <real>1.0</real> <real>1.0</real> </array> <array> - <string>brighten</string> - <real>20.0</real> + <string>colorize</string> <real>1.0</real> <real>1.0</real> <real>1.0</real> + <real>0.0</real> + <real>0.3</real> + <real>0.0</real> + </array> + <array> + <string>saturate</string> + <real>0.35</real> </array> </array> </llsd> diff --git a/indra/newview/app_settings/filters/Gotham.xml b/indra/newview/app_settings/filters/HLines.xml similarity index 58% rename from indra/newview/app_settings/filters/Gotham.xml rename to indra/newview/app_settings/filters/HLines.xml index eb0725e6bf27560fb7abe6452422646a0802d1c1..ddff4d19771fe9ef748ee790000cc850171d0ada 100755 --- a/indra/newview/app_settings/filters/Gotham.xml +++ b/indra/newview/app_settings/filters/HLines.xml @@ -2,29 +2,24 @@ <array> <array> <string>linearize</string> - <real>0.0</real> + <real>0.1</real> <real>1.0</real> <real>1.0</real> <real>1.0</real> </array> <array> - <string>gamma</string> - <real>1.5</real> - <real>1.0</real> - <real>1.0</real> - <real>1.0</real> + <string>grayscale</string> </array> <array> - <string>colorize</string> - <real>0.0</real> + <string>blend</string> <real>0.0</real> <real>0.0</real> - <real>0.0</real> - <real>0.0</real> - <real>1.0</real> </array> <array> - <string>grayscale</string> + <string>screen</string> + <string>line</string> + <real>5.0</real> + <real>0.0</real> </array> </array> </llsd> diff --git a/indra/newview/app_settings/filters/Inkwell.xml b/indra/newview/app_settings/filters/Inkwell.xml deleted file mode 100755 index 77c88b5fbb38c228b811b4da017c92549f475837..0000000000000000000000000000000000000000 --- a/indra/newview/app_settings/filters/Inkwell.xml +++ /dev/null @@ -1,14 +0,0 @@ -<llsd> - <array> - <array> - <string>linearize</string> - <real>0.05</real> - <real>1.0</real> - <real>1.0</real> - <real>1.0</real> - </array> - <array> - <string>grayscale</string> - </array> - </array> -</llsd> diff --git a/indra/newview/app_settings/filters/Newspaper.xml b/indra/newview/app_settings/filters/Newspaper.xml index 748032554211cb2fc26df2699cf3576deae004ac..8247c34500a71eeac728bda7d66fc66bcf8d5496 100755 --- a/indra/newview/app_settings/filters/Newspaper.xml +++ b/indra/newview/app_settings/filters/Newspaper.xml @@ -2,7 +2,7 @@ <array> <array> <string>linearize</string> - <real>0.2</real> + <real>0.1</real> <real>1.0</real> <real>1.0</real> <real>1.0</real> @@ -18,7 +18,7 @@ <array> <string>screen</string> <string>2Dsine</string> - <real>15.0</real> + <real>5.0</real> <real>0.0</real> </array> </array> diff --git a/indra/newview/app_settings/filters/Poprocket.xml b/indra/newview/app_settings/filters/RedV.xml similarity index 65% rename from indra/newview/app_settings/filters/Poprocket.xml rename to indra/newview/app_settings/filters/RedV.xml index 7e64003908ff29676141ce8c6780d74908dd2170..5c47ca0f849c064021e8ff4a72277b75a0485b59 100755 --- a/indra/newview/app_settings/filters/Poprocket.xml +++ b/indra/newview/app_settings/filters/RedV.xml @@ -2,7 +2,14 @@ <array> <array> <string>linearize</string> - <real>0.0</real> + <real>0.1</real> + <real>1.0</real> + <real>1.0</real> + <real>1.0</real> + </array> + <array> + <string>contrast</string> + <real>0.8</real> <real>1.0</real> <real>1.0</real> <real>1.0</real> @@ -16,10 +23,10 @@ <string>colorize</string> <real>1.0</real> <real>0.0</real> - <real>0.0</real> + <real>1.0</real> <real>0.4</real> <real>0.0</real> - <real>0.0</real> + <real>0.2</real> </array> </array> </llsd> diff --git a/indra/newview/app_settings/filters/Saturate30.xml b/indra/newview/app_settings/filters/Saturate30.xml new file mode 100755 index 0000000000000000000000000000000000000000..b77f07a0374b0f6143b59761758483b7ecc80453 --- /dev/null +++ b/indra/newview/app_settings/filters/Saturate30.xml @@ -0,0 +1,8 @@ +<llsd> + <array> + <array> + <string>saturate</string> + <real>3.0</real> + </array> + </array> +</llsd> diff --git a/indra/newview/app_settings/filters/Toaster.xml b/indra/newview/app_settings/filters/SepiaV.xml similarity index 77% rename from indra/newview/app_settings/filters/Toaster.xml rename to indra/newview/app_settings/filters/SepiaV.xml index 170a1183ed0bbe306a712266a68b72dc4da234b8..d26df608b9e408cc9b037940eda624c2c7264393 100755 --- a/indra/newview/app_settings/filters/Toaster.xml +++ b/indra/newview/app_settings/filters/SepiaV.xml @@ -1,5 +1,12 @@ <llsd> <array> + <array> + <string>linearize</string> + <real>0.01</real> + <real>1.0</real> + <real>1.0</real> + <real>1.0</real> + </array> <array> <string>contrast</string> <real>0.8</real> @@ -13,11 +20,7 @@ <real>0.5</real> </array> <array> - <string>brighten</string> - <real>10.0</real> - <real>1.0</real> - <real>1.0</real> - <real>1.0</real> + <string>sepia</string> </array> </array> </llsd> diff --git a/indra/newview/app_settings/filters/Sutro.xml b/indra/newview/app_settings/filters/Sutro.xml deleted file mode 100755 index 3b0a58f01e5b0eb86b9fa0a72d9fa620407b946e..0000000000000000000000000000000000000000 --- a/indra/newview/app_settings/filters/Sutro.xml +++ /dev/null @@ -1,19 +0,0 @@ -<llsd> - <array> - <array> - <string>linearize</string> - <real>0.05</real> - <real>1.0</real> - <real>1.0</real> - <real>1.0</real> - </array> - <array> - <string>fade</string> - <real>4.0</real> - <real>0.5</real> - </array> - <array> - <string>sepia</string> - </array> - </array> -</llsd> diff --git a/indra/newview/app_settings/filters/VividV.xml b/indra/newview/app_settings/filters/VividV.xml new file mode 100755 index 0000000000000000000000000000000000000000..203130bdeeda720f51dc50fe0e24f7cd971888e7 --- /dev/null +++ b/indra/newview/app_settings/filters/VividV.xml @@ -0,0 +1,45 @@ +<llsd> + <array> + <array> + <string>linearize</string> + <real>0.1</real> + <real>1.0</real> + <real>1.0</real> + <real>1.0</real> + </array> + <array> + <string>contrast</string> + <real>0.8</real> + <real>1.0</real> + <real>1.0</real> + <real>1.0</real> + </array> + <array> + <string>saturate</string> + <real>1.5</real> + </array> + <array> + <string>fade</string> + <real>1.0</real> + <real>0.25</real> + </array> + <array> + <string>saturate</string> + <real>0.8</real> + </array> + <array> + <string>contrast</string> + <real>1.1</real> + <real>1.0</real> + <real>1.0</real> + <real>1.0</real> + </array> + <array> + <string>brighten</string> + <real>30</real> + <real>1.0</real> + <real>1.0</real> + <real>1.0</real> + </array> + </array> +</llsd> diff --git a/indra/newview/app_settings/filters/VividYellowV.xml b/indra/newview/app_settings/filters/VividYellowV.xml new file mode 100755 index 0000000000000000000000000000000000000000..2da27e53c14fed1bb06f09ee3c280b72f81a31c6 --- /dev/null +++ b/indra/newview/app_settings/filters/VividYellowV.xml @@ -0,0 +1,39 @@ +<llsd> + <array> + <array> + <string>linearize</string> + <real>0.1</real> + <real>1.0</real> + <real>1.0</real> + <real>1.0</real> + </array> + <array> + <string>contrast</string> + <real>1.1</real> + <real>1.0</real> + <real>1.0</real> + <real>1.0</real> + </array> + <array> + <string>fade</string> + <real>1.0</real> + <real>0.25</real> + </array> + <array> + <string>colorize</string> + <real>1.0</real> + <real>1.0</real> + <real>1.0</real> + <real>0.3</real> + <real>0.2</real> + <real>0.0</real> + </array> + <array> + <string>contrast</string> + <real>1.1</real> + <real>1.0</real> + <real>1.0</real> + <real>1.0</real> + </array> + </array> +</llsd> diff --git a/indra/newview/app_settings/filters/YellowV.xml b/indra/newview/app_settings/filters/YellowV.xml new file mode 100755 index 0000000000000000000000000000000000000000..0dab2489a05a1b3f42b51e19413a7ee35e806206 --- /dev/null +++ b/indra/newview/app_settings/filters/YellowV.xml @@ -0,0 +1,41 @@ +<llsd> + <array> + <array> + <string>linearize</string> + <real>0.1</real> + <real>1.0</real> + <real>1.0</real> + <real>1.0</real> + </array> + <array> + <string>contrast</string> + <real>0.8</real> + <real>1.0</real> + <real>1.0</real> + <real>1.0</real> + </array> + <array> + <string>colorize</string> + <real>1.0</real> + <real>1.0</real> + <real>1.0</real> + <real>0.5</real> + <real>0.0</real> + <real>0.0</real> + </array> + <array> + <string>blend</string> + <real>10.0</real> + <real>0.0</real> + </array> + <array> + <string>colorize</string> + <real>1.0</real> + <real>1.0</real> + <real>1.0</real> + <real>0.1</real> + <real>0.1</real> + <real>0.0</real> + </array> + </array> +</llsd> diff --git a/indra/newview/llimagefiltersmanager.cpp b/indra/newview/llimagefiltersmanager.cpp new file mode 100755 index 0000000000000000000000000000000000000000..efc4f56ad3f3badd0c30e2e16d8970d009a562ca --- /dev/null +++ b/indra/newview/llimagefiltersmanager.cpp @@ -0,0 +1,84 @@ +/** + * @file llimagefilters.cpp + * @brief Load and execute image filters. Mostly used for Flickr at the moment. + * + * $LicenseInfo:firstyear=2001&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2014, Linden Research, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA + * $/LicenseInfo$ + */ + +#include "llviewerprecompiledheaders.h" + +#include "llimagefilters.h" + +#include "lldiriterator.h" + + +//--------------------------------------------------------------------------- +// LLImageFilters +//--------------------------------------------------------------------------- + +LLImageFilters::LLImageFilters() +{ +} + +LLImageFilters::~LLImageFilters() +{ +} + +// virtual static +void LLImageFilters::initSingleton() +{ + loadAllFilters(); +} + +// static +std::string LLImageFilters::getSysDir() +{ + return gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "filters", ""); +} + +void LLImageFilters::loadAllFilters() +{ + // Load system (coming out of the box) filters + loadFiltersFromDir(getSysDir()); +} + +void LLImageFilters::loadFiltersFromDir(const std::string& dir) +{ + LLDirIterator dir_iter(dir, "*.xml"); + while (1) + { + std::string file; + if (!dir_iter.next(file)) + { + break; // no more files + } + + std::string path = gDirUtilp->add(dir, file); + + // For the moment, just output the file found to the log + llinfos << "Merov : loadFiltersFromDir, filter = " << path << llendl; + } +} + + + +//============================================================================ diff --git a/indra/newview/llimagefiltersmanager.h b/indra/newview/llimagefiltersmanager.h new file mode 100755 index 0000000000000000000000000000000000000000..52b4a56b9b0bb525ed67ee4af86f699d21340035 --- /dev/null +++ b/indra/newview/llimagefiltersmanager.h @@ -0,0 +1,74 @@ +/** + * @file llimagefilters.h + * @brief Load and execute image filters. Mostly used for Flickr at the moment. + * + * $LicenseInfo:firstyear=2000&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2014, Linden Research, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA + * $/LicenseInfo$ + */ + +#ifndef LL_LLIMAGEFILTERS_H +#define LL_LLIMAGEFILTERS_H + +#include "llsingleton.h" +#include "llimage.h" +/* +typedef enum e_vignette_mode +{ + VIGNETTE_MODE_NONE = 0, + VIGNETTE_MODE_BLEND = 1, + VIGNETTE_MODE_FADE = 2 +} EVignetteMode; + +typedef enum e_screen_mode +{ + SCREEN_MODE_2DSINE = 0, + SCREEN_MODE_LINE = 1 +} EScreenMode; +*/ +//============================================================================ +// library initialization class + +class LLImageFilters : public LLSingleton<LLImageFilters> +{ + LOG_CLASS(LLImageFilters); +public: + // getFilters(); get a vector of std::string containing the filter names + //LLSD loadFilter(const std::string& filter_name); + //void executeFilter(const LLSD& filter_data, LLPointer<LLImageRaw> raw_image); + +protected: +private: + void loadAllFilters(); + void loadFiltersFromDir(const std::string& dir); + LLSD loadFilter(const std::string& path); + + static std::string getSysDir(); + + friend class LLSingleton<LLImageFilters>; + /*virtual*/ void initSingleton(); + LLImageFilters(); + ~LLImageFilters(); + + // Needed here: + // - a map of filter files with name and path +}; + +#endif diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 9e8623c1f9c12910a6eff8c81ea8bdde5bb8c09f..3a76773dded40fcdadb9c50b91aaba36ee03681e 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -98,6 +98,9 @@ def construct(self): # ... and the entire windlight directory self.path("windlight") + # ... and the entire image filters directory + self.path("filters") + # ... and the included spell checking dictionaries pkgdir = os.path.join(self.args['build'], os.pardir, 'packages') if self.prefix(src=pkgdir,dst=""):