Files
rr3-apk/smali/androidx/core/content/res/CamUtils.smali
Daniel Elliott f3960ee359 Add Discord APKTool decompilation (Smali source for modding)
- Imported from https://github.com/supermegamestre/Project-Real-Resurrection-3
- APKTool decompilation (Smali bytecode) for modding and rebuilding APK
- Supports both 32-bit (armeabi-v7a) and 64-bit (arm64-v8a) architectures
- Includes full Smali source, resources, and native libraries
- Ready to rebuild APK after modifications with apktool b command
- Added comprehensive README-apktool.md with modding guide

This branch complements the JADX branches:
- Use JADX (main/discord-community) to UNDERSTAND code (readable Java)
- Use APKTool (this branch) to MODIFY and REBUILD APK (editable Smali)

Total: 44,417 files, 538.51 MB Smali source code
2026-02-18 16:13:44 -08:00

639 lines
9.9 KiB
Smali

.class final Landroidx/core/content/res/CamUtils;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field static final CAM16RGB_TO_XYZ:[[F
.field static final SRGB_TO_XYZ:[[F
.field static final WHITE_POINT_D65:[F
.field static final XYZ_TO_CAM16RGB:[[F
# direct methods
.method static constructor <clinit>()V
.locals 6
const/4 v0, 0x3
new-array v1, v0, [[F
new-array v2, v0, [F
fill-array-data v2, :array_0
const/4 v3, 0x0
aput-object v2, v1, v3
new-array v2, v0, [F
fill-array-data v2, :array_1
const/4 v4, 0x1
aput-object v2, v1, v4
new-array v2, v0, [F
fill-array-data v2, :array_2
const/4 v5, 0x2
aput-object v2, v1, v5
sput-object v1, Landroidx/core/content/res/CamUtils;->XYZ_TO_CAM16RGB:[[F
new-array v1, v0, [[F
new-array v2, v0, [F
fill-array-data v2, :array_3
aput-object v2, v1, v3
new-array v2, v0, [F
fill-array-data v2, :array_4
aput-object v2, v1, v4
new-array v2, v0, [F
fill-array-data v2, :array_5
aput-object v2, v1, v5
sput-object v1, Landroidx/core/content/res/CamUtils;->CAM16RGB_TO_XYZ:[[F
new-array v1, v0, [F
fill-array-data v1, :array_6
sput-object v1, Landroidx/core/content/res/CamUtils;->WHITE_POINT_D65:[F
new-array v1, v0, [[F
new-array v2, v0, [F
fill-array-data v2, :array_7
aput-object v2, v1, v3
new-array v2, v0, [F
fill-array-data v2, :array_8
aput-object v2, v1, v4
new-array v0, v0, [F
fill-array-data v0, :array_9
aput-object v0, v1, v5
sput-object v1, Landroidx/core/content/res/CamUtils;->SRGB_TO_XYZ:[[F
return-void
nop
:array_0
.array-data 4
0x3ecd759f
0x3f2671bd
-0x42ad373b # -0.051461f
.end array-data
:array_1
.array-data 4
-0x417fdcdf
0x3f9a2a3d
0x3d3bd167
.end array-data
:array_2
.array-data 4
-0x44f7c02b # -0.002079f
0x3d4881e4
0x3f740022
.end array-data
:array_3
.array-data 4
0x3fee583d
-0x407e8f35
0x3e18c46b
.end array-data
:array_4
.array-data 4
0x3ec669e1
0x3f1f172e
-0x43ecf866
.end array-data
:array_5
.array-data 4
-0x437e39f7
-0x42f43b81
0x3f86653c
.end array-data
:array_6
.array-data 4
0x42be1810
0x42c80000 # 100.0f
0x42d9c419
.end array-data
:array_7
.array-data 4
0x3ed31e17
0x3eb71a0d
0x3e38d7b9
.end array-data
:array_8
.array-data 4
0x3e59b3d0 # 0.2126f
0x3f371759 # 0.7152f
0x3d93dd98 # 0.0722f
.end array-data
:array_9
.array-data 4
0x3c9e47ef
0x3df40c29
0x3f7349cc
.end array-data
.end method
.method private constructor <init>()V
.locals 0
.line 48
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static intFromLStar(F)I
.locals 15
const/high16 v0, 0x3f800000 # 1.0f
cmpg-float v0, p0, v0
if-gez v0, :cond_0
const/high16 p0, -0x1000000
return p0
:cond_0
const/high16 v0, 0x42c60000 # 99.0f
cmpl-float v0, p0, v0
if-lez v0, :cond_1
const/4 p0, -0x1
return p0
:cond_1
const/high16 v0, 0x41800000 # 16.0f
add-float v1, p0, v0
const/high16 v2, 0x42e80000 # 116.0f
div-float/2addr v1, v2
const/high16 v3, 0x41000000 # 8.0f
cmpl-float v3, p0, v3
const v4, 0x4461d2f7
if-lez v3, :cond_2
mul-float p0, v1, v1
mul-float/2addr p0, v1
goto :goto_0
:cond_2
div-float/2addr p0, v4
:goto_0
mul-float v3, v1, v1
mul-float/2addr v3, v1
const v5, 0x3c111aa7
cmpl-float v5, v3, v5
const/4 v6, 0x0
const/4 v7, 0x1
if-lez v5, :cond_3
move v5, v7
goto :goto_1
:cond_3
move v5, v6
:goto_1
if-eqz v5, :cond_4
move v8, v3
goto :goto_2
:cond_4
mul-float v8, v1, v2
sub-float/2addr v8, v0
div-float/2addr v8, v4
:goto_2
if-eqz v5, :cond_5
goto :goto_3
:cond_5
mul-float/2addr v1, v2
sub-float/2addr v1, v0
div-float v3, v1, v4
:goto_3
sget-object v0, Landroidx/core/content/res/CamUtils;->WHITE_POINT_D65:[F
.line 101
aget v1, v0, v6
mul-float/2addr v8, v1
float-to-double v9, v8
aget v1, v0, v7
mul-float/2addr p0, v1
float-to-double v11, p0
const/4 p0, 0x2
aget p0, v0, p0
mul-float/2addr v3, p0
float-to-double v13, v3
invoke-static/range {v9 .. v14}, Landroidx/core/graphics/ColorUtils;->XYZToColor(DDD)I
move-result p0
return p0
.end method
.method public static lStarFromInt(I)F
.locals 0
.line 111
invoke-static {p0}, Landroidx/core/content/res/CamUtils;->yFromInt(I)F
move-result p0
invoke-static {p0}, Landroidx/core/content/res/CamUtils;->lStarFromY(F)F
move-result p0
return p0
.end method
.method public static lStarFromY(F)F
.locals 2
const/high16 v0, 0x42c80000 # 100.0f
div-float/2addr p0, v0
const v0, 0x3c111aa7
cmpg-float v0, p0, v0
if-gtz v0, :cond_0
const v0, 0x4461d2f7
mul-float/2addr p0, v0
return p0
:cond_0
float-to-double v0, p0
.line 121
invoke-static {v0, v1}, Ljava/lang/Math;->cbrt(D)D
move-result-wide v0
double-to-float p0, v0
const/high16 v0, 0x42e80000 # 116.0f
mul-float/2addr p0, v0
const/high16 v0, 0x41800000 # 16.0f
sub-float/2addr p0, v0
return p0
.end method
.method public static lerp(FFF)F
.locals 0
sub-float/2addr p1, p0
mul-float/2addr p1, p2
add-float/2addr p0, p1
return p0
.end method
.method public static linearized(I)F
.locals 6
int-to-float p0, p0
const/high16 v0, 0x437f0000 # 255.0f
div-float/2addr p0, v0
const v0, 0x3d25aee6 # 0.04045f
cmpg-float v0, p0, v0
const/high16 v1, 0x42c80000 # 100.0f
if-gtz v0, :cond_0
const v0, 0x414eb852 # 12.92f
div-float/2addr p0, v0
:goto_0
mul-float/2addr p0, v1
return p0
:cond_0
const v0, 0x3d6147ae # 0.055f
add-float/2addr p0, v0
const v0, 0x3f870a3d # 1.055f
div-float/2addr p0, v0
float-to-double v2, p0
const-wide v4, 0x4003333340000000L # 2.4000000953674316
.line 161
invoke-static {v2, v3, v4, v5}, Ljava/lang/Math;->pow(DD)D
move-result-wide v2
double-to-float p0, v2
goto :goto_0
.end method
.method public static xyzFromInt(I[F)V
.locals 9
.param p1 # [F
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 136
invoke-static {p0}, Landroid/graphics/Color;->red(I)I
move-result v0
invoke-static {v0}, Landroidx/core/content/res/CamUtils;->linearized(I)F
move-result v0
.line 137
invoke-static {p0}, Landroid/graphics/Color;->green(I)I
move-result v1
invoke-static {v1}, Landroidx/core/content/res/CamUtils;->linearized(I)F
move-result v1
.line 138
invoke-static {p0}, Landroid/graphics/Color;->blue(I)I
move-result p0
invoke-static {p0}, Landroidx/core/content/res/CamUtils;->linearized(I)F
move-result p0
sget-object v2, Landroidx/core/content/res/CamUtils;->SRGB_TO_XYZ:[[F
const/4 v3, 0x0
.line 141
aget-object v4, v2, v3
aget v5, v4, v3
mul-float/2addr v5, v0
const/4 v6, 0x1
aget v7, v4, v6
mul-float/2addr v7, v1
add-float/2addr v5, v7
const/4 v7, 0x2
aget v4, v4, v7
mul-float/2addr v4, p0
add-float/2addr v5, v4
aput v5, p1, v3
.line 142
aget-object v4, v2, v6
aget v5, v4, v3
mul-float/2addr v5, v0
aget v8, v4, v6
mul-float/2addr v8, v1
add-float/2addr v5, v8
aget v4, v4, v7
mul-float/2addr v4, p0
add-float/2addr v5, v4
aput v5, p1, v6
.line 143
aget-object v2, v2, v7
aget v3, v2, v3
mul-float/2addr v0, v3
aget v3, v2, v6
mul-float/2addr v1, v3
add-float/2addr v0, v1
aget v1, v2, v7
mul-float/2addr p0, v1
add-float/2addr v0, p0
aput v0, p1, v7
return-void
.end method
.method public static yFromInt(I)F
.locals 5
.line 127
invoke-static {p0}, Landroid/graphics/Color;->red(I)I
move-result v0
invoke-static {v0}, Landroidx/core/content/res/CamUtils;->linearized(I)F
move-result v0
.line 128
invoke-static {p0}, Landroid/graphics/Color;->green(I)I
move-result v1
invoke-static {v1}, Landroidx/core/content/res/CamUtils;->linearized(I)F
move-result v1
.line 129
invoke-static {p0}, Landroid/graphics/Color;->blue(I)I
move-result p0
invoke-static {p0}, Landroidx/core/content/res/CamUtils;->linearized(I)F
move-result p0
sget-object v2, Landroidx/core/content/res/CamUtils;->SRGB_TO_XYZ:[[F
const/4 v3, 0x1
.line 131
aget-object v2, v2, v3
const/4 v4, 0x0
aget v4, v2, v4
mul-float/2addr v0, v4
aget v3, v2, v3
mul-float/2addr v1, v3
add-float/2addr v0, v1
const/4 v1, 0x2
aget v1, v2, v1
mul-float/2addr p0, v1
add-float/2addr v0, p0
return v0
.end method
.method public static yFromLStar(F)F
.locals 6
const/high16 v0, 0x41000000 # 8.0f
cmpl-float v0, p0, v0
const/high16 v1, 0x42c80000 # 100.0f
if-lez v0, :cond_0
float-to-double v2, p0
const-wide/high16 v4, 0x4030000000000000L # 16.0
add-double/2addr v2, v4
const-wide/high16 v4, 0x405d000000000000L # 116.0
div-double/2addr v2, v4
const-wide/high16 v4, 0x4008000000000000L # 3.0
.line 149
invoke-static {v2, v3, v4, v5}, Ljava/lang/Math;->pow(DD)D
move-result-wide v2
double-to-float p0, v2
:goto_0
mul-float/2addr p0, v1
return p0
:cond_0
const v0, 0x4461d2f7
div-float/2addr p0, v0
goto :goto_0
.end method