1#pragma once
2
3#include <gfx/seadGraphics.h>
4#include <thread/seadCriticalSection.h>
5#include "nvn/nvn.h"
6
7namespace sead
8{
9class GraphicsNvn : public Graphics
10{
11public:
12 class CreateArg;
13
14 GraphicsNvn(const CreateArg& arg);
15
16 void initializeDrawLockContext(Heap*);
17 void initializeImpl(Heap*);
18
19 int getNewTextureId();
20 NVNdevice* getNvnDevice() const { return mNvnDevice; }
21 NVNtexturePool* getTexturePool() { return &mNvnTexturePool; }
22 int getTextureSamplerID() const { return mTextureSamplerID; }
23 CriticalSection* getCriticalSection2() { return &mCriticalSection2; }
24
25private:
26 NVNdevice* mNvnDevice;
27 void* _38;
28 void* _40;
29 void* _48;
30 void* _50;
31 NVNtexturePool mNvnTexturePool;
32 void* _78;
33 void* _80;
34 void* _88;
35 void* _90;
36 void* _98;
37 void* _A0;
38 void* _A8;
39 void* _B0;
40 void* _B8;
41 void* _C0;
42 void* _C8;
43 void* _D0;
44 void* _D8;
45 void* _E0;
46 void* _E8;
47 void* _F0;
48 int mTextureSamplerID;
49 void* _100;
50 int _108;
51 int _10C;
52 int _110;
53 int _114;
54 CriticalSection mCriticalSection1;
55 CriticalSection mCriticalSection2;
56 CriticalSection mCriticalSection3;
57 void* _1D8;
58 void* _1E0;
59 void* _1E8;
60 void* _1F0;
61 void* _1F8;
62 bool _200;
63 bool _201;
64 bool _202;
65};
66static_assert(sizeof(GraphicsNvn) == 0x208);
67
68} // namespace sead