Logo
Emote.h
1#pragma once
2
3#ifdef USE_EMOTE
4#include "../ext/emote/include/iemote.h"
5#endif
6#include "base/FixedSizeString.h"
7#include "NativeTextureRenderer.h"
8
9namespace XXSharpKmyGfx {
10
11 ref class SpriteBatch;
12 ref class InternalCommandBuffer;
13 ref class Framebuffer;
14
15#ifdef USE_EMOTE
16 class EmoteData {
17 public:
18 USE_MEMORY_TRACKING;
19 kmyBase::FixedSizePath path = "";
20 IEmotePlayer* m_basePlayer = nullptr;
21 int refnum = 0;
22 };
23#endif
24
25 private ref class EmoteInstance
26 {
27 public:
28 EmoteInstance(System::String^ path);
29 ~EmoteInstance();
30 void draw(u32 framebufferWidth, u32 framebufferHeight);
31 void drawToSpriteBatch(SpriteBatch^ sb, int zorder);
32 void progress(int frames);
33
34 void setCoord(float x, float y);//ƒsƒNƒZƒ‹’l‚É‚æ‚éƒIƒtƒZƒbƒg
35 void setColor(u32 rgba);
36 void setScale(float s);
37 void playTimeLine(System::String^ label);
38 array<System::String^>^ getMainTimeLineLabels();
39
40#ifdef USE_EMOTE
41 EmoteData* data;
42 IEmotePlayer* player;
43#endif
44 };
45
46 private ref class EmoteTexture
47 {
48 public:
49 EmoteTexture(System::String^ path, GameView^ gv, int width, int height);
50 ~EmoteTexture();
51 void createCommand(InternalCommandBuffer^ icb);
52
53 EmoteInstance^ emo = nullptr;
54 Framebuffer^ fb = nullptr;
55 };
56
57}