Commit Graph

59 Commits

Author SHA1 Message Date
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
e70f8016db fix VT GammaSpace for Intermediate Linear texture format
re-enable ImageCore IsValid check

#rb fabian.giesen
#preflight none

[CL 22739941 by charles bloom in ue5-main branch]
2022-10-24 18:50:09 -04:00
charles bloom
7bf32d550a ImageCore.cpp : comment out check until cause is found
#rb none
#preflight none

[CL 22728099 by charles bloom in ue5-main branch]
2022-10-24 11:18:50 -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
alexander suvorov
6831f1baf8 Perform raw data copy between FImageViews with matching linear pixel formats, even if specified gamma spaces don't match.
#rb none
#fyi charles.bloom
#preflight 63501ea08176062ea7e7bd79

[CL 22627979 by alexander suvorov in ue5-main branch]
2022-10-19 12:24:00 -04:00
charles bloom
f684ebdd7c DDSFile prevent possible integer overflow in ArrayCount * MipCount
also another in Width*Height*Depth*PixelSize

#jira UE-166509
#preflight 6345bb9ecc615cdcf7144a7a

[CL 22479151 by charles bloom in ue5-main branch]
2022-10-12 11:18:45 -04:00
charles bloom
c54aea87fc fix ThumbnailManager was saving jpegs with .png extension
move some functionality from FImage to FImageView

#preflight 6331e19a7b582f58ab7abee1
#rb fabian.giesen

[CL 22192007 by charles bloom in ue5-main branch]
2022-09-26 15:27:14 -04:00
alexander suvorov
f65d5b00ec Fix incorrect check in SampleImage.
#rb none
#preflight none

[CL 22131763 by alexander suvorov in ue5-main branch]
2022-09-21 21:24:05 -04:00
alexander suvorov
abf57a5928 Add support for adding textures with different pixels formats to a Texture2DArray.
#jira FORT-514248
#fyi charles.bloom
#preflight 632890fe8c3def91aaaa3eea

[CL 22081244 by alexander suvorov in ue5-main branch]
2022-09-19 17:25:17 -04:00
jeanmichel dignard
45cd0e3c93 Interchange
- Ported the new DDS import code from UTextureFactory to Interchange.
- Added the option to only parse the header in FDDSFile.
- Added support for texture cube arrays and volume textures.
- Dump warnings and errors in the log at the end of the import.

#jira UE-152766
#rb alexis.matte, charles.bloom
#preflight 6320c54f506f1a33e061e164

[CL 21991495 by jeanmichel dignard in ue5-main branch]
2022-09-13 16:24:03 -04:00
charles bloom
21d02018d7 Fix 6-image array DDS files being imported as cubes
#jira UE-162673
#rb fabian.giesen
#preflight none

[CL 21745696 by charles bloom in ue5-main branch]
2022-09-01 15:16:01 -04:00
ricard rovira
d69f51b63a Make DetectAlphaChannel public
#preflight 62f36ee2f75a2a539c716721
[REVIEW] [at]alexei.lebedev
#rnx

#ROBOMERGE-OWNER: ricard.rovira
#ROBOMERGE-AUTHOR: ricard.rovira
#ROBOMERGE-SOURCE: CL 21352299 via CL 21352302 via CL 21352378
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)

[CL 21352671 by ricard rovira in ue5-main branch]
2022-08-12 04:37:59 -04:00
charles bloom
3cf577ad9a comments only : clean up some todo marks
#rb none
#preflight none

[CL 21326622 by charles bloom in ue5-main branch]
2022-08-10 17:26:50 -04:00
Robb Surridge
b81ca15f2f Coding standard fixes: gender-inclusive language
#preflight 62d976a8d54af4b9a20784bc
#jira UE-158724
#rb lauren.barnes

[CL 21221236 by Robb Surridge in ue5-main branch]
2022-07-22 11:01:51 -04:00
paul chipchase
6c77345ceb Clean up some terminology
#rb trivial
#jira UE-158657
#rnx
#preflight 62c67bdf557511b126db2d51

[CL 20981205 by paul chipchase in ue5-main branch]
2022-07-07 02:55:32 -04:00
charles bloom
977f76dd9e fix VT Image Resize with Pow22 Gamma
Resize converts Pow22 to sRGB because it can not output Pow22

#preflight 62bb22ef101ad5bf64ae7b2b
#rb fabian.giesen

[CL 20864029 by charles bloom in ue5-main branch]
2022-06-28 16:38:52 -04:00
charles bloom
ada7f6b1d8 Texture GetBuildRequiredEstimate better estimate of texture build memory needed
create new TextureBuildUtilities module that can be used from Engine or TextureBuildWorker
new cvar memory.WindowsPlatformMemoryGetStatsLimitTotalVirtualGB simulates a lower memory system

#rb fabian.giesen
#preflight 62b34bf8650c9d5857a38514

[CL 20786800 by charles bloom in ue5-main branch]
2022-06-22 20:21:16 -04:00
charles bloom
593fab6f69 Clamp F16 in valid range for BC6H in ISPC and ASTC, also set A to 1
even though ASTC could encode other values of A, still clamp as if it was BC6H for consistency
now all compressed HDR formats should clamp the same way that Oodle Texture currently does

#preflight 6296556c452ffe576a816993
#rb fabian.giesen

[CL 20440882 by charles bloom in ue5-main branch]
2022-05-31 15:49:40 -04:00
charles bloom
578f1d4048 Add TSF_R32F single channel float texture source format
#preflight 6272ecc3e73769b67fe88db9
#rb dan.thompson,fabian.giesen

[CL 20064522 by charles bloom in ue5-main branch]
2022-05-05 16:58:24 -04:00
charles bloom
be238dee17 fix failures on texture import of rare cases
fix RHI upload of textures that are multiple of 4 in top mip but not in lower mips
dont pad CompressedImage sizes, store true size
clean up Texture size limits and VT conditions
better default settings for texture import
clean up initialization order of TextureFormatManagerModule

#preflight 6250814a11261bc7b23d8f4b
#rb fabian.giesen,julien.stjean

[CL 19693287 by charles bloom in ue5-main branch]
2022-04-08 16:06:54 -04:00
charles bloom
cd1fd835b4 ImageCore.cpp fix asserting DestImage.GammaSpace
temp disable check

#preflight none
#rb none

[CL 19547080 by charles bloom in ue5-main branch]
2022-03-29 15:07:24 -04:00
charles bloom
d5b7476357 make image copying to Pow22 gamma a warning and prevent callers from doing so
pow22 should old be used as a source gamma
dest gamma should always be srgb or linear

#preflight 62432a61df7d23dbfeeb57bc
#rb none

[CL 19543713 by charles bloom in ue5-main branch]
2022-03-29 12:16:51 -04:00
charles bloom
349a2035bf new DDSFile DDS import and export
supports 2d,cube,cube array,volume
supports many dxgi pixel formats

#preflight 623c8ea0ca34ffd7bf8c6d07
#rb fabian.giesen

[CL 19501289 by charles bloom in ue5-main branch]
2022-03-24 15:40:53 -04:00
fabian giesen
44b81d0e43 FLinearColor conversion optimizations and some fixes.
FLinearColor ctor from FColor is mainly three table lookups, make it inline and move to the header.
Quantize, QuantizeFloor, QuantizeRound are similarly trivial, now inline.
Move Clamp01 to FColor as static method so it's namespaced; rename to Clamp01NansTo0 to explain why it's not just FMath::Clamp to [0,1]
SSE2-ified FLinearColor::ToFColorSRGB for x86 targets, bitwise exact same results as before for all input floats (tested exhaustively, test included)
Don't want to make ToFColorSRGB inline, it's a bit large for that, but make an array version that does multiple at once. Mainly try to avoid doing a cross-DLL call per pixel for large batches.
Switch ImageCore Linear->sRGB conv to use array version.
FLinearColor R,G,B,A members union'd with "deprecated" RGBA[] array, Component() updated to use it (matching recent fix for FVector)
ImageCore vector loads from FLinearColors updated to use &Component(0) which gives &RGBA[0], pointer to a 4-elem array
Add tests to UnrealMathTest.cpp to verify that sRGB<->Linear and UNORM<->Linear conversions behave as expected, plus the separate ColorConversionHeavy test that does the exhaustive equivalence check between the SSE2 ToFColorSRGB() and reference (warning: takes a while)

#rb danny.couture, martins.mozeiko
#preflight 6238c86f04769ab493469a3f

[CL 19456245 by fabian giesen in ue5-main branch]
2022-03-21 15:07:04 -04:00