sead
Loading...
Searching...
No Matches
aglVertexAttribute.h
Go to the documentation of this file.
1#pragma once
2
3#include <container/seadBuffer.h>
4#include <container/seadSafeArray.h>
5
6#include <cafe/gx2.h>
7
8namespace agl {
9
10class VertexBuffer;
11
13{
15 {
17 : mpVertexBuffer(nullptr)
18 , mStreamIndex(-1)
19 , mBufferIndex(-1)
20 {
21 }
22
26 };
27 static_assert(sizeof(Attribute_) == 0xC, "agl::VertexAttribute::Attribute_ size mismatch");
28
29public:
30 static const u32 cVertexAttributeMax = 16;
31
32public:
34 virtual ~VertexAttribute();
35
36 void create(u32 buffer_max, sead::Heap* heap = nullptr);
37 void cleanUp();
38 void destroy();
39
40 void setVertexStream(s16 location, const VertexBuffer* buffer, u32 stream_index);
41 void setUp();
42
43 void activate() const;
44
45private:
46 s32 enableVertexBuffer_(Attribute_* attr, const VertexBuffer* buffer, u32 stream_index);
48
49private:
50 sead::SafeArray<Attribute_, cVertexAttributeMax> mAttribute;
56};
57static_assert(sizeof(VertexAttribute) == 0xF4, "agl::VertexAttribute size mismatch");
58
59}
Definition aglVertexAttribute.h:13
void setUp()
Definition aglVertexAttribute.cpp:112
sead::SafeArray< Attribute_, cVertexAttributeMax > mAttribute
Definition aglVertexAttribute.h:50
void activate() const
Definition aglVertexAttribute.cpp:145
static const u32 cVertexAttributeMax
Definition aglVertexAttribute.h:30
s32 disableVertexBuffer_(Attribute_ *attr)
Definition aglVertexAttribute.cpp:97
void cleanUp()
Definition aglVertexAttribute.cpp:31
void create(u32 buffer_max, sead::Heap *heap=nullptr)
Definition aglVertexAttribute.cpp:19
VertexAttribute()
Definition aglVertexAttribute.cpp:7
virtual ~VertexAttribute()
Definition aglVertexAttribute.cpp:14
s32 enableVertexBuffer_(Attribute_ *attr, const VertexBuffer *buffer, u32 stream_index)
Definition aglVertexAttribute.cpp:74
GX2FetchShader mFetchShader
Definition aglVertexAttribute.h:54
bool mCreateFinish
Definition aglVertexAttribute.h:53
u8 * mpFetchShaderBuf
Definition aglVertexAttribute.h:55
bool mSetupFinish
Definition aglVertexAttribute.h:52
sead::Buffer< const VertexBuffer * > mVertexBuffer
Definition aglVertexAttribute.h:51
void setVertexStream(s16 location, const VertexBuffer *buffer, u32 stream_index)
Definition aglVertexAttribute.cpp:59
void destroy()
Definition aglVertexAttribute.cpp:42
Definition aglVertexBuffer.h:11
Definition seadBuffer.h:13
Definition seadHeap.h:23
Definition seadSafeArray.h:19
Definition aglDisplayList.cpp:5
Definition seadAssert.h:44
Definition aglVertexAttribute.h:15
s32 mStreamIndex
Definition aglVertexAttribute.h:24
const VertexBuffer * mpVertexBuffer
Definition aglVertexAttribute.h:23
s32 mBufferIndex
Definition aglVertexAttribute.h:25
Attribute_()
Definition aglVertexAttribute.h:16