ChatPlexSDK-BS 1.0.1-v6.2.0
C++ ChatPlex BeatSaber SDK
Loading...
Searching...
No Matches
TextureRaw.hpp
1#pragma once
2
3#include "../Utils/Il2cpp.hpp"
4
5#include <vector>
6
7#include <UnityEngine/Color.hpp>
8
9namespace CP_SDK::Unity {
10
11 namespace _u
12 {
13 using namespace UnityEngine;
14 }
15
18 {
19 CP_SDK_NO_DEF_CTORS(TextureRaw);
20
21 public:
22 using PixelArray = std::shared_ptr<std::vector<_u::Color>>;
23
24 public:
30 static bool Load(::Array<uint8_t>* p_Bytes, int& p_Width, int& p_Height, PixelArray* p_Pixels);
31
32 public:
38 static void FastGaussianBlur(int p_InWidth, int p_InHeight, PixelArray& p_InPixels, int p_Radius);
42 static void Multiply(PixelArray& p_ImageA, PixelArray& p_ImageB);
50 static PixelArray ResampleAndCrop(int p_InWidth, int p_InHeight, PixelArray& p_InPixels, int p_TargetWidth, int p_TargetHeight, float p_YOffsetRel = 0.5f);
51
52 private:
53 static std::vector<int> BoxesForGauss(int p_Radius, int p_Count);
54 static void GaussianBlur4(int p_Width, int p_Height, PixelArray& p_InPixels, int p_Radius);
55 static void BoxBlur4 (int p_Width, int p_Height, PixelArray& p_InPixels, int p_Radius);
56 static void BoxBlurH4(int p_Width, int p_Height, PixelArray& p_InPixels, int p_Radius);
57 static void BoxBlurT4(int p_Width, int p_Height, PixelArray& p_InPixels, int p_Radius);
58
59 };
60
61}
Texture raw utilities.
static void Multiply(PixelArray &p_ImageA, PixelArray &p_ImageB)
Multiply image A & B into A.
static PixelArray ResampleAndCrop(int p_InWidth, int p_InHeight, PixelArray &p_InPixels, int p_TargetWidth, int p_TargetHeight, float p_YOffsetRel=0.5f)
Resize an image and crop it.
static bool Load(::Array< uint8_t > *p_Bytes, int &p_Width, int &p_Height, PixelArray *p_Pixels)
Load an image into raw pixels.
static void FastGaussianBlur(int p_InWidth, int p_InHeight, PixelArray &p_InPixels, int p_Radius)
Blur an image.
Tools and extensions to interact with Unity on different layer & threads, load fonts/sprites/textures...