sead
Loading...
Searching...
No Matches
aglDisplayList.h
Go to the documentation of this file.
1#pragma once
2
3#include <heap/seadHeap.h>
4
5#ifdef cafe
6#include <cafe.h>
7#endif // cafe
8
9namespace agl {
10
12{
13public:
14#ifdef cafe
16#else
17 static const u32 cDisplayListAlignment = 4;
18#endif
19
20public:
22 virtual ~DisplayList();
23
24 u8* getBuffer() const
25 {
26 return mpBuffer;
27 }
28
29 bool isEmpty() const
30 {
31 return mValidSize == 0;
32 }
33
34 void setBuffer(u8* buffer, size_t size);
35 void clear();
36
37 bool beginDisplayList();
39
40 bool beginDisplayListBuffer(u8* buffer, size_t size);
42
43 bool beginDisplayListTemporary(size_t size);
45
46 void call() const
47 {
48#ifdef cafe
49 if (!isEmpty())
50 GX2CallDisplayList(mpBuffer, mValidSize);
51#endif // cafe
52 }
53
54 void directCall() const
55 {
56#ifdef cafe
57 if (!isEmpty())
58 GX2DirectCallDisplayList(mpBuffer, mValidSize);
59#endif // cafe
60 }
61
62 static size_t suspend(void** p_dl);
63 static void resume(void* dl, size_t size);
64
65private:
69};
70static_assert(sizeof(DisplayList) == 0x10, "agl::DisplayList size mismatch");
71
72}
Definition aglDisplayList.h:12
size_t mSize
Definition aglDisplayList.h:67
bool beginDisplayListBuffer(u8 *buffer, size_t size)
Definition aglDisplayList.cpp:59
size_t endDisplayListTemporary(sead::Heap *heap)
Definition aglDisplayList.cpp:91
DisplayList()
Definition aglDisplayList.cpp:7
size_t endDisplayListBuffer(sead::Heap *heap)
Definition aglDisplayList.cpp:69
void directCall() const
Definition aglDisplayList.h:54
bool beginDisplayListTemporary(size_t size)
Definition aglDisplayList.cpp:85
static size_t suspend(void **p_dl)
Definition aglDisplayList.cpp:99
void clear()
Definition aglDisplayList.cpp:26
u8 * getBuffer() const
Definition aglDisplayList.h:24
size_t mValidSize
Definition aglDisplayList.h:68
u8 * mpBuffer
Definition aglDisplayList.h:66
bool isEmpty() const
Definition aglDisplayList.h:29
bool beginDisplayList()
Definition aglDisplayList.cpp:33
void call() const
Definition aglDisplayList.h:46
void setBuffer(u8 *buffer, size_t size)
Definition aglDisplayList.cpp:16
static void resume(void *dl, size_t size)
Definition aglDisplayList.cpp:118
size_t endDisplayList()
Definition aglDisplayList.cpp:45
virtual ~DisplayList()
Definition aglDisplayList.cpp:12
Definition seadHeap.h:23
Definition aglDisplayList.cpp:5
Definition seadAssert.h:44