ChatPlexSDK-BS 1.0.1-v6.2.0
C++ ChatPlex BeatSaber SDK
Loading...
Searching...
No Matches
EnhancedImage.hpp
1#pragma once
2
3#include "../Animation/AnimationControllerInstance.hpp"
4#include "../Animation/AnimationLoader.hpp"
5#include "../Utils/Il2cpp.hpp"
6
7#include <UnityEngine/Sprite.hpp>
8
9#include <memory>
10#include <string>
11
12namespace CP_SDK::Unity {
13
14 namespace _u
15 {
16 using namespace UnityEngine;
17 }
18 namespace _v
19 {
20 using namespace CP_SDK::Utils;
21 }
22
25 {
26 CP_SDK_NO_COPYMOVE_CTORS(EnhancedImage);
27 CP_SDK_PRIV_TAG();
28
29 public:
30 using Ptr = std::shared_ptr<EnhancedImage>;
31
32 private:
33 std::u16string m_ImageID;
35 int m_Width;
36 int m_Height;
37 Animation::AnimationControllerInstance::Ptr m_AnimControllerData;
38
39 public:
41 EnhancedImage(CP_SDK_PRIV_TAG_ARG());
44
45 public:
47 std::u16string_view ImageID();
49 _u::Sprite* Sprite();
51 int Width();
53 int Height();
55 Animation::AnimationControllerInstance::Ptr& AnimControllerData();
56
57 public:
60 void EnsureValidForHeight(int p_ForcedHeight);
61
62 public:
68 static void FromRawStatic(std::u16string p_ID, _v::CMonoPtrRef<::Array<uint8_t>> p_Bytes, _v::CActionRef<const EnhancedImage::Ptr&> p_Callback, int p_ForcedHeight = -1);
75 static void FromRawAnimated(std::u16string p_ID, Animation::EAnimationType p_Type, _v::CMonoPtrRef<::Array<uint8_t>> p_Bytes, _v::CActionRef<const EnhancedImage::Ptr&> p_Callback, int p_ForcedHeight = -1);
80 static void FromFile(std::u16string p_FileName, std::u16string p_ID, _v::CActionRef<const EnhancedImage::Ptr&> p_Callback);
81
82 private:
88 static void OnRawStaticCallback(std::u16string p_ID, _v::CMonoPtrRef<_u::Sprite> p_Sprite, _v::CActionRef<const EnhancedImage::Ptr&> p_Callback, int p_ForcedHeight = -1);
98 static void OnRawAnimatedCallback(std::u16string p_ID, _v::CMonoPtrRef<_u::Texture2D> p_Texture, const std::vector<_u::Rect>& p_UVs, const std::vector<uint16_t>& p_Delays, int p_Width, int p_Height, _v::CActionRef<const EnhancedImage::Ptr&> p_Callback, int p_ForcedHeight = -1);
99
100 private:
105 static void ComputeImageSizeForHeight(int* p_SpriteWidth, int* p_SpriteHeight, int p_Height);
106
107 private:
112 static bool ContainBytePattern(_v::CMonoPtrRef<::Array<uint8_t>> p_Array, const uint8_t* p_Pattern, int p_PatternSize);
113
114 };
115
116}
static void FromFile(std::u16string p_FileName, std::u16string p_ID, _v::CActionRef< const EnhancedImage::Ptr & > p_Callback)
From file.
_u::Sprite * Sprite()
Get ID of the image.
EnhancedImage(CP_SDK_PRIV_TAG_ARG())
Constructor.
std::u16string_view ImageID()
Get ID of the image.
Animation::AnimationControllerInstance::Ptr & AnimControllerData()
Get AnimControllerData.
static void FromRawStatic(std::u16string p_ID, _v::CMonoPtrRef<::Array< uint8_t > > p_Bytes, _v::CActionRef< const EnhancedImage::Ptr & > p_Callback, int p_ForcedHeight=-1)
From raw.
static void FromRawAnimated(std::u16string p_ID, Animation::EAnimationType p_Type, _v::CMonoPtrRef<::Array< uint8_t > > p_Bytes, _v::CActionRef< const EnhancedImage::Ptr & > p_Callback, int p_ForcedHeight=-1)
From raw animated.
void EnsureValidForHeight(int p_ForcedHeight)
Ensure image valid.
EAnimationType
Animation type.
Tools and extensions to interact with Unity on different layer & threads, load fonts/sprites/textures...
Various platform utils like Delegate/Action/Function/Event system.
Definition Delegate.hpp:8