1#pragma once
2
3#include <heap/seadDisposer.h>
4#include <hostio/seadHostIONode.h>
5
6namespace agl {
7class DrawContext;
8class DisplayList;
9} // namespace agl
10
11namespace agl::driver {
12
13class GraphicsDriverMgr : public sead::hostio::Node {
14 SEAD_SINGLETON_DISPOSER(GraphicsDriverMgr)
15public:
16 GraphicsDriverMgr();
17 virtual ~GraphicsDriverMgr();
18
19 void waitDrawDone() const;
20 void dumpInfo() const;
21 void setPointLimits(agl::DrawContext* draw_context, float min, float max) const;
22 void setPointSize(agl::DrawContext* draw_context, float point_size) const;
23 void setLineWidth(agl::DrawContext* draw_context, float line_width) const;
24
25 agl::DisplayList* getDefaultCommandBuffer();
26
27#ifdef SEAD_DEBUG
28 void listenPropertyEvent(const sead::hostio::PropertyEvent* event) override;
29 void genMessage(sead::hostio::Context* context) override;
30#endif
31
32protected:
33 void initialize_(sead::Heap p_heap);
34
35private:
36 agl::DisplayList* mDefaultCommandBuffer;
37 void* _30;
38};
39
40static_assert(sizeof(GraphicsDriverMgr) == 0x38);
41
42} // namespace agl::driver
43