sead
Loading...
Searching...
No Matches
aglShaderLocation.hpp
Go to the documentation of this file.
1#pragma once
2
3// TODO: Move to the proper header
4#define SEAD_MACRO_UTIL_ROUNDUP(x, y) ((x) + ((y) - 1) & ~((y) - 1))
5
6#include <cafe/gx2.h>
7
8namespace agl {
9
10namespace {
11
12inline void
13setUniform(const UniformLocation& location, u32 size, const void* buffer)
14{
15 if (location.getVertexLocation() != -1)
16 GX2SetVertexUniformReg(location.getVertexLocation(), SEAD_MACRO_UTIL_ROUNDUP(size, sizeof(sead::Vector4u)) / sizeof(u32), buffer);
17
18 if (location.getFragmentLocation() != -1)
19 GX2SetPixelUniformReg(location.getFragmentLocation(), SEAD_MACRO_UTIL_ROUNDUP(size, sizeof(sead::Vector4u)) / sizeof(u32), buffer);
20}
21
22}
23
24inline void
26{
28}
29
30inline void
32{
33 setUniform(*this, sizeof(s32), &value);
34}
35
36inline void
38{
39 setUniform(*this, sizeof(u32), &value);
40}
41
42inline void
44{
45 setUniform(*this, sizeof(f32), &value);
46}
47
48inline void
50{
51 setUniform(*this, sizeof(sead::Vector2i), &value);
52}
53
54inline void
56{
57 setUniform(*this, sizeof(sead::Vector2u), &value);
58}
59
60inline void
62{
63 setUniform(*this, sizeof(sead::Vector2f), &value);
64}
65
66inline void
68{
69 setUniform(*this, sizeof(sead::Vector3i), &value);
70}
71
72inline void
74{
75 setUniform(*this, sizeof(sead::Vector3u), &value);
76}
77
78inline void
80{
81 setUniform(*this, sizeof(sead::Vector3f), &value);
82}
83
84inline void
86{
87 setUniform(*this, sizeof(sead::Vector4i), &value);
88}
89
90inline void
92{
93 setUniform(*this, sizeof(sead::Vector4u), &value);
94}
95
96inline void
98{
99 setUniform(*this, sizeof(sead::Vector4f), &value);
100}
101
102inline void
104{
105 setUniform(*this, sizeof(sead::Color4f), &value);
106}
107
108inline void
110{
111 setUniform(*this, sizeof(sead::Matrix34f), &value);
112}
113
114inline void
116{
117 setUniform(*this, sizeof(sead::Matrix44f), &value);
118}
119
120inline void
122{
123 setUniform(*this, sizeof(sead::Matrix34f), value);
124}
125
126inline void
128{
129 setUniform(*this, sizeof(sead::Matrix44f), value);
130}
131
132}
#define SEAD_MACRO_UTIL_ROUNDUP(x, y)
Definition aglShaderLocation.hpp:4
Definition aglDisplayList.cpp:5