Commit Graph

55 Commits

Author SHA1 Message Date
charles bloom
8d76e1c458 ImageCore: more resize filter options (Lanczos)
make DownscaleOptions Default pass through without changing to SimpleAverage for new filters
map DownscaleOptions to better resize filters
#rb Dan.Thompson, fabian.giesen

[CL 31916433 by charles bloom in ue5-main branch]
2024-02-29 13:40:21 -05:00
charles bloom
7dcd51da85 ImageCore::CopyImage TempLinear path, use per-line temp row, not whole image temp surface
#rb fabian.giesen

[CL 31869355 by charles bloom in ue5-main branch]
2024-02-28 08:36:00 -05:00
charles bloom
4b4e8649bd TextureCompressorModule::GetOutputAlphaFromKnownAlphaOrFallback to clean up common patterns of trying to query alpha
TextureFormatOodle : yes you can free the float mip immediately because hashing is no longer on an async task
FImage::FreeData with async detach option
validate VT sizes better to prevent crashes

#jira UE-183888

#rb dan.thompson, fabian.giesen

[CL 31815947 by charles bloom in ue5-main branch]
2024-02-26 16:02:58 -05:00
charles bloom
3a4e13401f ImageCore ScaleChannelsSoMinMaxIsInZeroToOne replicates the behavior of the RenderTarget UNorm ReadPixels modifier
scales image outside [0,1] so that it is inside
uses ImageParallelFor

#rnx

[CL 30130491 by charles bloom in ue5-main branch]
2023-12-05 15:01:49 -05:00
charles bloom
b066d4c0b3 TextureRenderTarget clean up Create/Update not supporting all formats
use generic routines so all-format support is automatic
#rb fabian.giesen

[CL 30070416 by charles bloom in ue5-main branch]
2023-12-03 10:39:38 -05:00
charles bloom
119e20200d Texture Source resizing followups
ResizeImage support wrap/clamp edge mode on X and Y
ResizeImage fix Pow22 source is SRGB dest
TextureSource resizer detect cases that are poorly handled by TextureCompressorModule and use ResizeImage instead (eg. latlong, stretch)

#rb fabian.giesen

[CL 29923273 by charles bloom in ue5-main branch]
2023-11-24 14:55:47 -05:00
charles bloom
d3515bfe79 ImageCore::ResizeImage good quality and fast resizer using stb_image_resize2
old ResizeTo should be avoided except to preserve legacy behavior

#jira UE-163527
#rb dan.thompson,jeff.roberts
#rnx

[CL 29243470 by charles bloom in ue5-main branch]
2023-10-30 15:10:33 -04:00
dan thompson
bb9bc58b72 CPU accessible textures
#rb fabian.giesen
#rb charles.bloom

[CL 26655002 by dan thompson in ue5-main branch]
2023-07-27 16:46:23 -04:00
henrik karlsson
5db685f97d [Engine]
* Moved dllexport from type to methods/staticvar in all Engine runtime code. This improves compile times, memory and performance in dll builds

[CL 26082269 by henrik karlsson in ue5-main branch]
2023-06-17 18:13:06 -04:00
charles bloom
5e04696773 ImageParallelFor for easy parallel work on pixels
ImageParallelProcessLinearPixels
ComputeImageLinearAverage
Make Bokeh computation use the new routines as a test

#rb fabian.geisen
#rnx

[CL 26073510 by charles bloom in ue5-main branch]
2023-06-16 18:12:53 -04:00
charles bloom
152edc496d ImageCoreUtils::IsImageImportPossible can be checked before image import instead of after
#rb none
#rnx

[CL 25792081 by charles bloom in ue5-main branch]
2023-06-05 10:47:00 -04:00
dan thompson
5f360661f3 Move GuardedInt.h to Core as it's about to be needed elsewhere.
#rb devin.doucette
#preflight 6467a9a52c0a5da0dcd0afa9

[CL 25553319 by dan thompson in ue5-main branch]
2023-05-19 17:51:45 -04:00
charles bloom
961fd905ef ImageCore: GetOnePixelLinear helper cleanup
GetOnePixelLinear should take EGammaSpace not bSRGB
GetOnePixelLinear helpers on the FImage/FImageView classes

#preflight none
#rb dan.thompson
#rnx

[CL 25175425 by charles bloom in ue5-main branch]
2023-04-24 23:19:17 -04:00
charles bloom
ea4ac5a4fb nop comments only about preferring FImage usage
#preflight none
#rb none
#rnx

[CL 25149333 by charles bloom in ue5-main branch]
2023-04-21 13:58:13 -04:00
charles bloom
6010bd0780 Use 2xU16 instead of 4xU16 for BC4/5 texture image format in TextureFormatOodle
#preflight https://horde.devtools.epicgames.com/job/64408bad73470c177cbf749a
#rnx
#rb fabian.giesen

[CL 25129718 by charles bloom in ue5-main branch]
2023-04-20 12:32:12 -04:00
charles bloom
420b6f6adb TextureCompressorModule : run hashing for metadata on an async task
change FImage passed to TextureFormat to be const, it must not be changed becausing hashing is running threaded
remove early frees of intermediate image; this increases peak memory use

#preflight https://horde.devtools.epicgames.com/job/643ff4a3090323f9a3f7695e
#rb dan.thompson

[CL 25116608 by charles bloom in ue5-main branch]
2023-04-19 17:29:39 -04:00
charles bloom
aa956df38a fix many texture and image int64 issues
can now successfully import over 32K textures to VT

#preflight https://horde.devtools.epicgames.com/job/6435ab7900398d6f88e8e808
#rb fabian.giesen
#jira none

[CL 24996140 by charles bloom in ue5-main branch]
2023-04-11 15:18:46 -04:00
charles bloom
0dba30cf83 deprecate DDSLoader ; use DDSFile instead
#preflight https://horde.devtools.epicgames.com/job/642e1f81da7f95837018caaf
#rb dan.thompson

[CL 24956736 by charles bloom in ue5-main branch]
2023-04-06 17:01:22 -04:00
Dan Thompson
3be34c6c93 Imported partial mip chains must be generated out to a full mip chain.
#rb charles.bloom
#preflight 641363f68354cad0fab4135a

[CL 24676337 by Dan Thompson in ue5-main branch]
2023-03-16 14:55:10 -04:00
eric renaudhoude
e44e8f11af ImageCore: Extracting the working color space transformation method into the public namespace.
#jira none
#rb charles.bloom
#preflight 641091cdc41a0a2a7730295c
#rnx

[CL 24645734 by eric renaudhoude in ue5-main branch]
2023-03-14 18:01:33 -04:00
charles bloom
36f193d01a Texture provide Blueprint functions to help detect nearly-empty textures
#jira UE-171963
#preflight 638f9f630d013d47efd39b43
#rb dan.thompson

[CL 23436685 by charles bloom in ue5-main branch]
2022-12-07 18:20:20 -05:00
Dan Thompson
4eaebc2ba4 Fix for incorrect view size for RGBA16
#rb trivial
#preflight 6375741e8f4cb2e4dc6a559f

[CL 23165602 by Dan Thompson in ue5-main branch]
2022-11-16 18:49:15 -05:00
fabian giesen
392f2bd406 Fix GuardedInt compile bug in GetChecked
#rb trivial
#preflight 6362a777876630122aafdb2b

[CL 22920933 by fabian giesen in ue5-main branch]
2022-11-02 13:40:08 -04:00
fabian giesen
df1f41ea1e TCheckedSignedInt -> TGuardedSignedInt
Derived types also renamed from "checked" to "guarded" to avoid confusion with check()
Remove "Invalid()" static method. The coding style compliant "GetInvalid()" is too confusing (it sounds like it might be !IsValid()), just use the default ctor.
GetValue() -> GetChecked() with user-specified default value. This is like Get() but with a check(IsValid()) in front (to make sure results are always defined, even in non-checked builds).
Add natvis for TGuardedSignedInt
Various small cleanups: constants const->constexpr, simplify from-int ctor
Only allow arithmetic ops with maching SignedType
Move to ImageCore for now

#rb johan.torp
#preflight 6359b219ec7f617ff46398d7

[CL 22797384 by fabian giesen in ue5-main branch]
2022-10-26 18:41:26 -04:00
charles bloom
aa6ea58de0 ImageCore Gamma validation
#preflight 63554a223a547c3da3e24b9d
#rb none
#fyi alexander.suvorov

[CL 22714453 by charles bloom in ue5-main branch]
2022-10-23 10:35:57 -04:00