diff --git a/uppsrc/Draw/ImageOp.h b/uppsrc/Draw/ImageOp.h index 035c56105..201f76288 100644 --- a/uppsrc/Draw/ImageOp.h +++ b/uppsrc/Draw/ImageOp.h @@ -262,9 +262,6 @@ Image MinifyCached(const Image& img, int nx, int ny, bool co = false); Image DownSample3x(const Image& src, bool co = false); Image DownSample2x(const Image& src, bool co = false); -Image DPISmartRescale(const Image& src, Size sz); -Image DPISmartRescaleCached(const Image& src, Size sz); - Image Upscale2x(const Image& src); Image Downscale2x(const Image& src); Image Downscale6x(const Image& src); @@ -290,16 +287,17 @@ inline double DPI(double a) { return GetDPIScaleRatio() * a; } inline Size DPI(int cx, int cy) { return Size(DPI(cx), DPI(cy)); } inline Size DPI(Size sz) { return DPI(sz.cx, sz.cy); } +Image DPISmartRescale(const Image& src, Size sz); +Image DPISmartRescaleCached(const Image& src, Size sz); + int ImlFlagsToDPIScale(int imlflags); int DPIScaleToImlFlags(int dpiscale); - inline int DPI2(int dpi200val, int dpi100val) { int scale = GetDPIScale(); return (dpi200val - dpi100val) * (scale - DPI_100) / 2 + dpi100val; } - struct RGBAV { dword r, g, b, a; diff --git a/uppsrc/Draw/src.tpp/DPI_en-us.tpp b/uppsrc/Draw/src.tpp/DPI_en-us.tpp index bf3296772..413c2ce80 100644 --- a/uppsrc/Draw/src.tpp/DPI_en-us.tpp +++ b/uppsrc/Draw/src.tpp/DPI_en-us.tpp @@ -10,25 +10,42 @@ topic "GUI Scaling"; [b42;2 $$9,9#13035079074754324216151401829390:normal] [2 $$0,0#00000000000000000000000000000000:Default] [{_} -[ {{10000@(113.42.0) [s0;%% [*@7;4 GUI Scaling]]}}&] +[ {{10000@(113.42.0) [s0;%% [*@7;4 Image Pixel DPI Scaling]]}}&] [s0;i448;a25;kKO9;@(0.0.255) &] [ {{10000F(128)G(128)@1 [s0;%% [* Function List]]}}&] [s0;%% &] +[s5;:Upp`:`:SetDPIScale`(int`): [@(0.0.255) void] [* SetDPIScale]([@(0.0.255) int] +[*@3 scale])&] +[s2;%% Sets the current image (and image related) [%-*@3 scale]. Can +be one of DPI`_100 (FHD), DPI`_150 (QHD), &] +[s2;%% -|DPI`_200 (UHD), DPI`_300.&] [s3; &] [s4; &] -[s5;:Upp`:`:DPI`(const Upp`:`:Image`&`): [_^Upp`:`:Image^ Image]_[* DPI]([@(0.0.255) const]_ -[_^Upp`:`:Image^ Image][@(0.0.255) `&]_[*@3 img])&] -[s2;%% Eventually upscales or downscales [%-*@3 img] based on its UHD -flag and current mode. Standard images are upscaled 2x in UHD -mode, UHD images are downscaled 2x in standard mode.&] -[s3;%% &] +[s5;:Upp`:`:SyncDPIScale`(`): [@(0.0.255) void] [* SyncDPIScale]()&] +[s2;%% Changes the scaling based on GetStdFontCy(). Gets called automatically +at the start of U`+`+ application (in CtrlLib). Unless your application +is not using CtrlCore, you should not call this one.&] +[s3; &] +[s4; &] +[s5;:Upp`:`:GetDPIScale`(`): [@(0.0.255) int] [* GetDPIScale]()&] +[s2;%% Returns current scaling .&] +[s3; &] +[s4; &] +[s5;:Upp`:`:GetDPIScaleRatio`(`): [@(0.0.255) double] [* GetDPIScaleRatio]()&] +[s2;%% Returns current scaling as number (E.g. DPI`_150 `-> 1.5).&] +[s3; &] +[s4; &] +[s5;:Upp`:`:GetDPIUnScaleRatio`(`): [@(0.0.255) double] [* GetDPIUnScaleRatio]()&] +[s2;%% Returns 1 / GetDPIScaleRatio().&] +[s3; &] [s4; &] [s5;:Upp`:`:DPI`(int`): [@(0.0.255) int]_[* DPI]([@(0.0.255) int]_[*@3 a])&] -[s2;%% Returns 2 `* [%-*@3 a] if UHD is active and [%-*@3 a] otherwise.&] -[s3;%% &] -[s4; &] +[s5;:Upp`:`:DPI`(double`): [@(0.0.255) double] [* DPI]([@(0.0.255) double] +[*@3 a])&] +[s5;:Upp`:`:DPI`(int`,int`): [_^Upp`:`:Size^ Size]_[* DPI]([@(0.0.255) int] +cx, [@(0.0.255) int] cy)&] [s5;:Upp`:`:DPI`(Upp`:`:Size`): [_^Upp`:`:Size^ Size]_[* DPI]([_^Upp`:`:Size^ Size]_[*@3 sz]) &] -[s2;%% Returns 2 `* [%-*@3 sz] if UHD is active and [%-*@3 sz] otherwise.&] -[s3;%% &] +[s2;%% Scales argument(s) based on current scaling cooeficient (e.g. +2x for DPI`_200, 1.5x for DPI`_150).&] [s0;%% ]] \ No newline at end of file diff --git a/uppsrc/Draw/src.tpp/DPI_en-us.tppi b/uppsrc/Draw/src.tpp/DPI_en-us.tppi deleted file mode 100644 index a4851a900..000000000 --- a/uppsrc/Draw/src.tpp/DPI_en-us.tppi +++ /dev/null @@ -1,6 +0,0 @@ -TITLE("GUI Scaling") -COMPRESSED -120,156,141,82,239,79,219,48,16,253,87,44,21,80,139,186,234,238,108,199,78,242,165,31,24,63,180,73,155,134,248,20,5,106,90,211,69,107,83,150,164,99,3,193,223,190,115,72,71,209,96,172,138,98,247,238,222,243,123,207,201,10,165,108,234,72,167,223,62,124,138,83,18,59,59,56,132,158,52,40,173,150,168,40,226,23,74,36,77,82,161,165,88,89,41,45,36,211,133,171,235,60,91,144,181,45,136,134,212,35,163,9,141,178,202,162,52,150,24,75,0,4,134,52,42,105,73,39,51,95,79,243,12,120,92,242,25,113,36,99,64,0,131,8,146,12,72,173,16,37,49,5,25,66,208,137,47,103,121,118,28,165,1,160,24,0,58,2,128,136,217,148,2,102,15,48,37,81,2,73,141,177,142,146,75,63,47,202,60,251,219,146,126,211,146,129,164,104,252,178,115,228,84,186,63,214,41,50,52,26,70,61,195,199,42,205,135,197,193,145,100,24,81,164,99,212,138,37,41,160,164,242,223,215,69,229,151,190,108,58,134,2,145,48,189,68,147,178,132,135,135,135,17,42,120,76, -202,176,22,4,214,77,200,53,246,97,80,199,16,107,139,22,164,81,164,13,91,191,118,149,91,118,78,46,21,165,157,15,59,180,189,8,35,78,20,44,235,215,49,19,0,155,224,149,131,212,252,72,155,52,29,56,224,2,40,30,198,61,14,73,106,48,49,24,101,180,98,39,132,17,114,144,16,252,243,53,36,229,170,90,186,69,158,5,0,132,172,223,248,37,7,254,202,173,23,108,247,238,226,94,100,226,238,14,67,121,220,231,43,28,41,26,193,64,100,53,164,187,187,34,219,31,155,84,137,163,179,19,113,58,117,139,162,156,231,249,253,253,94,30,218,207,111,106,220,135,17,140,216,214,64,112,123,67,121,216,71,178,131,163,246,61,198,39,86,113,184,46,167,77,177,42,197,199,162,110,158,56,185,25,54,50,109,23,245,184,232,52,57,187,190,158,36,147,228,224,243,201,164,63,93,149,117,35,186,202,201,210,205,253,100,111,50,72,68,118,113,190,93,60,23,237,146,95,240,105,140,203,251,217,150,196,150,131,91,47,67,182,39,39,123,129,97,44,69,177,156,231,131,32,135,130, -202,247,63,248,115,89,187,197,226,151,88,95,215,28,141,175,197,170,18,179,213,77,217,253,203,118,223,109,96,226,210,213,126,38,216,109,209,212,226,236,248,64,92,45,220,92,184,114,38,166,235,170,98,38,177,92,205,252,72,156,54,92,115,213,140,81,172,163,22,174,242,27,250,153,160,159,162,40,91,116,24,30,182,187,173,185,63,71,111,38,235,13,89,203,253,24,107,151,239,203,193,22,101,211,230,184,229,158,75,47,7,216,53,216,160,219,74,229,139,111,214,85,89,11,18,147,253,77,0,46,23,197,213,163,88,22,202,151,254,195,183,206,159,218,171,230,171,175,110,138,250,191,68,118,251,211,226,214,63,191,244,80,57,23,225,189,165,248,149,46,159,91,223,190,161,155,7,254,41,60,244,95,81,222,126,199,121,254,27,86,89,138,21, - diff --git a/uppsrc/Draw/src.tpp/ImageOp_en-us.tpp b/uppsrc/Draw/src.tpp/ImageOp_en-us.tpp index 26c1e3293..18016096c 100644 --- a/uppsrc/Draw/src.tpp/ImageOp_en-us.tpp +++ b/uppsrc/Draw/src.tpp/ImageOp_en-us.tpp @@ -317,5 +317,16 @@ CKWISE. Flip mode values are compatible with Raster`::GetOrientation and are equal to EXIF orientation `- 1. This function is intended to flip Image to correct orientation (usually JPEG from digital camera).&] -[s2;%% &] +[s3; &] +[s4; &] +[s5;:Upp`:`:DPISmartRescale`(const Image`&`,Size`): Image [* DPISmartRescale]([@(0.0.255) c +onst] Image[@(0.0.255) `&] [*@3 src], Size [*@3 sz])&] +[s2;%% Intended to rescale `"not fitting`" icons to current GUI scaling, +using variety of `"smart`" methods (xBR upscaling, Lancosz 3, +bilienear downscaling) to maintain the acceptable appearance.&] +[s3; &] +[s4; &] +[s5;:Upp`:`:DPISmartRescaleCached`(const Image`&`,Size`): Image [* DPISmartRescaleCache +d]([@(0.0.255) const] Image[@(0.0.255) `&] [*@3 src], Size [*@3 sz])&] +[s2;%% Same as DPISmartRescale, with added caching of results.&] [s0;%% ]] \ No newline at end of file diff --git a/uppsrc/Draw/src.tpp/all.i b/uppsrc/Draw/src.tpp/all.i deleted file mode 100644 index ecd2c14ee..000000000 --- a/uppsrc/Draw/src.tpp/all.i +++ /dev/null @@ -1,4 +0,0 @@ -TOPIC("DPI_en-us") -#include "DPI_en-us.tppi" -END_TOPIC - diff --git a/uppsrc/Draw/srcdoc.tpp/UhdAndDarkTheme_en-us.tpp b/uppsrc/Draw/srcdoc.tpp/UhdAndDarkTheme_en-us.tpp index bbe0de862..f7bf0ce1e 100644 --- a/uppsrc/Draw/srcdoc.tpp/UhdAndDarkTheme_en-us.tpp +++ b/uppsrc/Draw/srcdoc.tpp/UhdAndDarkTheme_en-us.tpp @@ -35,14 +35,11 @@ adjustment]&] files]&] [s0; &] [s3;:1: GUI mode detection&] -[s5; UHD mode is activated when standard GUI font is larger than -24 pixels. Dark theme mode is activated if [* IsDark]([* SColorPaper]()), +[s5; Various scaling modes are activated based standard GUI font +size. Dark theme mode is activated if [* IsDark]([* SColorPaper]()), which means that grayscale value of default background is less -than 80. Note that both modes create 4 combinations in total -`- standard resolution with light theme, standard resolution -with dark theme, UHD resolution with light theme, UHD resolution -with dark theme.&] -[s5; [* IsUHDMode() ]and [* IsDarkTheme() ]functions return respective +than 80.&] +[s5; [* GetDPIScale() ]and [* IsDarkTheme() ]functions return respective current GUI status.&] [s3;:2: Scaling GUI for actual GUI font and UHD resolution&] [s5; U`+`+ coordinates in drawing operations are always in real pixels @@ -75,11 +72,11 @@ height.] :: [s0;b42;a42; int [* DPI](int a);&] [s0;b42;a42; double [* DPI](double a);&] [s0;b42;a42; Size [* DPI](Size sz);&] -[s0;b42;a42; Size [* DPI](int cx, int cy);] -:: [s5; If UHD mode is active, returns the input argument multiplied -by 2, otherwise returns it unchanged.] -:: [s0;b42;a42; Image [* DPI](const Image`& a, const Image`& b);] -:: [s5; Returns [* b] if UHD is active, [* a] otherwise.]}}&] +[s0;b42;a42; Size [* DPI](int cx, int cy);&] +[s0;b42;a42; [* GetDPIUnScaleRatio]()&] +[s0;b42;a42; [* GetDPIUnScaleRatio]()] +:: [s5; Scales the entity by current scaling factor that is also used +to scale IML images.]}}&] [s5; Usually [* DPI ]functions are used if the value is Image related, `'Z`' functions if it is text size related.&] [s3;:3: Color adjustment&] @@ -92,24 +89,24 @@ the color with [* DarkTheme] only if dark theme mode is currently active.&] [s3;:4: Iml files&] [s5; Iml files most often contain images that are used in GUI interface. -Obviously, these images must be usually different for any of -4 GUI modes.&] -[s5; .iml should always contain images for either standard or UHD -resolution and the light theme. These images are used to define -the set of icons.&] -[s5; U`+`+ then uses smart algorithms to convert such images for -the current GUI mode. These work acceptably well in most cases.&] -[s5; Developer might decide to provide dedicated variants for any -image for any target mode which will be used instead of converted -basic icon. Such variant can be either placed into the same .iml -file or into separate .iml file.&] -[s0; The complete control of the process is available in image details +The scale for which the image is designed for is part of Image +attributes.&] +[s5; In addition to 100%, 150%, 200% and 300% variants, there is +also 600% [/ master] variant. The recommended approach is to use +this master scale and draw images without anti`-aliasing (which +is simpler to edit) `- anti`-aliasing then results from downscaling +the image to the required resolution.&] +[s5; When fetching Image from Iml, exact scale match has the first +priority, then 600% master. When not available, the most detailed +(highest scale) Image becomes the sources and it is rescaled +to the target resolution (using somewhat smart methods trying +to make it `"look acceptable`".&] +[s5; The complete control of the process is available in image details in the icon designer:&] [s0; &] -[s0;= &] [s0;= -@@image:924&1482 -(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) +@@image:1347&2746 +(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) &] [s0; &] [ {{2001:7999^ [s5; Fixed] @@ -120,13 +117,16 @@ image looks better in the dark mode without actually converting it.] :: [s5; Fixed size] :: [s5; Image is never scaled to match current mode.] -:: [s5; UHD variant] -:: [s5; Image is variant for UHD mode.] +:: [s5; 600% (master)] +:: [s5; Use this if possible...] +:: [s0;b42;a42; 100% HD&] +[s5;po 150% QHD&] +[s5;po 200% UHD&] +[s5;po 300% XHD] +:: [s5; Image is designed for specific resolution. Developer can provide +multiple variants.] :: [s5; Dark variant] :: [s5; Image is variant for Dark theme.] -:: [s5; Supersampled 3x] -:: [s5; Image is downsampled 3x before use `- this simplifies design -of antialiased images as images are drawn and stored as unaliased.] :: [s5; Export...] :: [s5; [/ This is unrelated to UHD / Dark theme mode, but if this is checked, the Image is exported as .ico and .png files. This is diff --git a/upptst/IMLScale/Ctrl.iml b/upptst/IMLScale/Ctrl.iml deleted file mode 100644 index 10d55eb59..000000000 --- a/upptst/IMLScale/Ctrl.iml +++ /dev/null @@ -1 +0,0 @@ -PREMULTIPLIED diff --git a/upptst/IMLScale/IMLScale.upp b/upptst/IMLScale/IMLScale.upp index 0c199619a..96273dc9a 100644 --- a/upptst/IMLScale/IMLScale.upp +++ b/upptst/IMLScale/IMLScale.upp @@ -2,9 +2,7 @@ uses CtrlLib; file - a.iml, test.iml, - Ctrl.iml, main.cpp; mainconfig diff --git a/upptst/IMLScale/a.iml b/upptst/IMLScale/a.iml deleted file mode 100644 index 10d55eb59..000000000 --- a/upptst/IMLScale/a.iml +++ /dev/null @@ -1 +0,0 @@ -PREMULTIPLIED