Skip to content

Commit c6db4fb

Browse files
author
edvin
committed
renderer: Update syntax of GlUniformBuffer to match that of GlUniformInput
1 parent 380d2e9 commit c6db4fb

File tree

4 files changed

+75
-76
lines changed

4 files changed

+75
-76
lines changed

libopenage/renderer/opengl/uniform_buffer.cpp

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@ std::shared_ptr<UniformBufferInput> GlUniformBuffer::new_unif_in() {
8080
return in;
8181
}
8282

83-
void GlUniformBuffer::set_unif(std::shared_ptr<UniformBufferInput> const &in, const char *unif, void const *val, GLenum type) {
84-
auto unif_in = std::dynamic_pointer_cast<GlUniformBufferInput>(in);
83+
void GlUniformBuffer::set_unif(UniformBufferInput &in, const char *unif, void const *val, GLenum type) {
84+
auto &unif_in = dynamic_cast<GlUniformBufferInput &>(in);
8585

8686
auto uniform = this->uniforms.find(unif);
8787
ENSURE(uniform != std::end(this->uniforms),
@@ -96,83 +96,82 @@ void GlUniformBuffer::set_unif(std::shared_ptr<UniformBufferInput> const &in, co
9696
ENSURE(size == unif_data.size,
9797
"Tried to set uniform " << unif << " to a value of the wrong size.");
9898

99-
auto update_off = unif_in->update_offs.find(unif);
100-
if (update_off != std::end(unif_in->update_offs)) [[likely]] { // always used after the uniform value is written once
101-
// already wrote to this uniform since last upload
99+
auto update_off = unif_in.update_offs.find(unif);
100+
if (update_off != std::end(unif_in.update_offs)) [[likely]] { // always used after the uniform value is written once // already wrote to this uniform since last upload
102101
size_t off = update_off->second;
103-
memcpy(unif_in->update_data.data() + off, val, size);
102+
memcpy(unif_in.update_data.data() + off, val, size);
104103
}
105104
else {
106105
// first time writing to this uniform since last upload, so
107106
// extend the buffer before storing the uniform value
108-
size_t prev_size = unif_in->update_data.size();
109-
unif_in->update_data.resize(prev_size + size);
110-
memcpy(unif_in->update_data.data() + prev_size, val, size);
111-
unif_in->update_offs.emplace(unif, prev_size);
107+
size_t prev_size = unif_in.update_data.size();
108+
unif_in.update_data.resize(prev_size + size);
109+
memcpy(unif_in.update_data.data() + prev_size, val, size);
110+
unif_in.update_offs.emplace(unif, prev_size);
112111
}
113112
}
114113

115-
void GlUniformBuffer::set_i32(std::shared_ptr<UniformBufferInput> const &in, const char *unif, int32_t val) {
114+
void GlUniformBuffer::set_i32(UniformBufferInput &in, const char *unif, int32_t val) {
116115
this->set_unif(in, unif, &val, GL_INT);
117116
}
118117

119-
void GlUniformBuffer::set_u32(std::shared_ptr<UniformBufferInput> const &in, const char *unif, uint32_t val) {
118+
void GlUniformBuffer::set_u32(UniformBufferInput &in, const char *unif, uint32_t val) {
120119
this->set_unif(in, unif, &val, GL_UNSIGNED_INT);
121120
}
122121

123-
void GlUniformBuffer::set_f32(std::shared_ptr<UniformBufferInput> const &in, const char *unif, float val) {
122+
void GlUniformBuffer::set_f32(UniformBufferInput &in, const char *unif, float val) {
124123
this->set_unif(in, unif, &val, GL_FLOAT);
125124
}
126125

127-
void GlUniformBuffer::set_f64(std::shared_ptr<UniformBufferInput> const &in, const char *unif, double val) {
126+
void GlUniformBuffer::set_f64(UniformBufferInput &in, const char *unif, double val) {
128127
this->set_unif(in, unif, &val, GL_DOUBLE);
129128
}
130129

131-
void GlUniformBuffer::set_bool(std::shared_ptr<UniformBufferInput> const &in, const char *unif, bool val) {
130+
void GlUniformBuffer::set_bool(UniformBufferInput &in, const char *unif, bool val) {
132131
this->set_unif(in, unif, &val, GL_BOOL);
133132
}
134133

135-
void GlUniformBuffer::set_v2f32(std::shared_ptr<UniformBufferInput> const &in, const char *unif, Eigen::Vector2f const &val) {
134+
void GlUniformBuffer::set_v2f32(UniformBufferInput &in, const char *unif, Eigen::Vector2f const &val) {
136135
this->set_unif(in, unif, val.data(), GL_FLOAT_VEC2);
137136
}
138137

139-
void GlUniformBuffer::set_v3f32(std::shared_ptr<UniformBufferInput> const &in, const char *unif, Eigen::Vector3f const &val) {
138+
void GlUniformBuffer::set_v3f32(UniformBufferInput &in, const char *unif, Eigen::Vector3f const &val) {
140139
this->set_unif(in, unif, val.data(), GL_FLOAT_VEC3);
141140
}
142141

143-
void GlUniformBuffer::set_v4f32(std::shared_ptr<UniformBufferInput> const &in, const char *unif, Eigen::Vector4f const &val) {
142+
void GlUniformBuffer::set_v4f32(UniformBufferInput &in, const char *unif, Eigen::Vector4f const &val) {
144143
this->set_unif(in, unif, val.data(), GL_FLOAT_VEC4);
145144
}
146145

147-
void GlUniformBuffer::set_v2i32(std::shared_ptr<UniformBufferInput> const &in, const char *unif, Eigen::Vector2i const &val) {
146+
void GlUniformBuffer::set_v2i32(UniformBufferInput &in, const char *unif, Eigen::Vector2i const &val) {
148147
this->set_unif(in, unif, val.data(), GL_INT_VEC2);
149148
}
150149

151-
void GlUniformBuffer::set_v3i32(std::shared_ptr<UniformBufferInput> const &in, const char *unif, Eigen::Vector3i const &val) {
150+
void GlUniformBuffer::set_v3i32(UniformBufferInput &in, const char *unif, Eigen::Vector3i const &val) {
152151
this->set_unif(in, unif, val.data(), GL_INT_VEC3);
153152
}
154153

155-
void GlUniformBuffer::set_v4i32(std::shared_ptr<UniformBufferInput> const &in, const char *unif, Eigen::Vector4i const &val) {
154+
void GlUniformBuffer::set_v4i32(UniformBufferInput &in, const char *unif, Eigen::Vector4i const &val) {
156155
this->set_unif(in, unif, val.data(), GL_INT_VEC4);
157156
}
158157

159-
void GlUniformBuffer::set_v2ui32(std::shared_ptr<UniformBufferInput> const &in, const char *unif, Eigen::Vector2<uint32_t> const &val) {
158+
void GlUniformBuffer::set_v2ui32(UniformBufferInput &in, const char *unif, Eigen::Vector2<uint32_t> const &val) {
160159
this->set_unif(in, unif, val.data(), GL_UNSIGNED_INT_VEC2);
161160
}
162161

163-
void GlUniformBuffer::set_v3ui32(std::shared_ptr<UniformBufferInput> const &in, const char *unif, Eigen::Vector3<uint32_t> const &val) {
162+
void GlUniformBuffer::set_v3ui32(UniformBufferInput &in, const char *unif, Eigen::Vector3<uint32_t> const &val) {
164163
this->set_unif(in, unif, val.data(), GL_UNSIGNED_INT_VEC3);
165164
}
166165

167-
void GlUniformBuffer::set_v4ui32(std::shared_ptr<UniformBufferInput> const &in, const char *unif, Eigen::Vector4<uint32_t> const &val) {
166+
void GlUniformBuffer::set_v4ui32(UniformBufferInput &in, const char *unif, Eigen::Vector4<uint32_t> const &val) {
168167
this->set_unif(in, unif, val.data(), GL_UNSIGNED_INT_VEC4);
169168
}
170169

171-
void GlUniformBuffer::set_m4f32(std::shared_ptr<UniformBufferInput> const &in, const char *unif, Eigen::Matrix4f const &val) {
170+
void GlUniformBuffer::set_m4f32(UniformBufferInput &in, const char *unif, Eigen::Matrix4f const &val) {
172171
this->set_unif(in, unif, val.data(), GL_FLOAT_MAT4);
173172
}
174173

175-
void GlUniformBuffer::set_tex(std::shared_ptr<UniformBufferInput> const &in, const char *unif, std::shared_ptr<Texture2d> const &val) {
174+
void GlUniformBuffer::set_tex(UniformBufferInput &in, const char *unif, std::shared_ptr<Texture2d> const &val) {
176175
auto tex = std::dynamic_pointer_cast<GlTexture2d>(val);
177176
GLuint handle = tex->get_handle();
178177
this->set_unif(in, unif, &handle, GL_SAMPLER_2D);

libopenage/renderer/opengl/uniform_buffer.h

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -51,22 +51,22 @@ class GlUniformBuffer final : public UniformBuffer
5151

5252
protected:
5353
std::shared_ptr<UniformBufferInput> new_unif_in() override;
54-
void set_i32(std::shared_ptr<UniformBufferInput> const &, const char *, int32_t) override;
55-
void set_u32(std::shared_ptr<UniformBufferInput> const &, const char *, uint32_t) override;
56-
void set_f32(std::shared_ptr<UniformBufferInput> const &, const char *, float) override;
57-
void set_f64(std::shared_ptr<UniformBufferInput> const &, const char *, double) override;
58-
void set_bool(std::shared_ptr<UniformBufferInput> const &, const char *, bool) override;
59-
void set_v2f32(std::shared_ptr<UniformBufferInput> const &, const char *, Eigen::Vector2f const &) override;
60-
void set_v3f32(std::shared_ptr<UniformBufferInput> const &, const char *, Eigen::Vector3f const &) override;
61-
void set_v4f32(std::shared_ptr<UniformBufferInput> const &, const char *, Eigen::Vector4f const &) override;
62-
void set_v2i32(std::shared_ptr<UniformBufferInput> const &, const char *, Eigen::Vector2i const &) override;
63-
void set_v3i32(std::shared_ptr<UniformBufferInput> const &, const char *, Eigen::Vector3i const &) override;
64-
void set_v4i32(std::shared_ptr<UniformBufferInput> const &, const char *, Eigen::Vector4i const &) override;
65-
void set_v2ui32(std::shared_ptr<UniformBufferInput> const &, const char *, Eigen::Vector2<uint32_t> const &) override;
66-
void set_v3ui32(std::shared_ptr<UniformBufferInput> const &, const char *, Eigen::Vector3<uint32_t> const &) override;
67-
void set_v4ui32(std::shared_ptr<UniformBufferInput> const &, const char *, Eigen::Vector4<uint32_t> const &) override;
68-
void set_m4f32(std::shared_ptr<UniformBufferInput> const &, const char *, Eigen::Matrix4f const &) override;
69-
void set_tex(std::shared_ptr<UniformBufferInput> const &, const char *, std::shared_ptr<Texture2d> const &) override;
54+
void set_i32(UniformBufferInput &in, const char *, int32_t) override;
55+
void set_u32(UniformBufferInput &in, const char *, uint32_t) override;
56+
void set_f32(UniformBufferInput &in, const char *, float) override;
57+
void set_f64(UniformBufferInput &in, const char *, double) override;
58+
void set_bool(UniformBufferInput &in, const char *, bool) override;
59+
void set_v2f32(UniformBufferInput &in, const char *, Eigen::Vector2f const &) override;
60+
void set_v3f32(UniformBufferInput &in, const char *, Eigen::Vector3f const &) override;
61+
void set_v4f32(UniformBufferInput &in, const char *, Eigen::Vector4f const &) override;
62+
void set_v2i32(UniformBufferInput &in, const char *, Eigen::Vector2i const &) override;
63+
void set_v3i32(UniformBufferInput &in, const char *, Eigen::Vector3i const &) override;
64+
void set_v4i32(UniformBufferInput &in, const char *, Eigen::Vector4i const &) override;
65+
void set_v2ui32(UniformBufferInput &in, const char *, Eigen::Vector2<uint32_t> const &) override;
66+
void set_v3ui32(UniformBufferInput &in, const char *, Eigen::Vector3<uint32_t> const &) override;
67+
void set_v4ui32(UniformBufferInput &in, const char *, Eigen::Vector4<uint32_t> const &) override;
68+
void set_m4f32(UniformBufferInput &in, const char *, Eigen::Matrix4f const &) override;
69+
void set_tex(UniformBufferInput &in, const char *, std::shared_ptr<Texture2d> const &) override;
7070

7171
private:
7272
/**
@@ -80,7 +80,7 @@ class GlUniformBuffer final : public UniformBuffer
8080
* @param val Pointer to the value to update the uniform with.
8181
* @param type Type of the uniform.
8282
*/
83-
void set_unif(std::shared_ptr<UniformBufferInput> const &in,
83+
void set_unif(UniformBufferInput &in,
8484
const char *name,
8585
void const *val,
8686
GLenum type);

libopenage/renderer/uniform_buffer.h

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -50,22 +50,22 @@ class UniformBuffer : public std::enable_shared_from_this<UniformBuffer> {
5050
protected:
5151
virtual std::shared_ptr<UniformBufferInput> new_unif_in() = 0;
5252

53-
virtual void set_i32(std::shared_ptr<UniformBufferInput> const &, const char *, int32_t) = 0;
54-
virtual void set_u32(std::shared_ptr<UniformBufferInput> const &, const char *, uint32_t) = 0;
55-
virtual void set_f32(std::shared_ptr<UniformBufferInput> const &, const char *, float) = 0;
56-
virtual void set_f64(std::shared_ptr<UniformBufferInput> const &, const char *, double) = 0;
57-
virtual void set_bool(std::shared_ptr<UniformBufferInput> const &, const char *, bool) = 0;
58-
virtual void set_v2f32(std::shared_ptr<UniformBufferInput> const &, const char *, Eigen::Vector2f const &) = 0;
59-
virtual void set_v3f32(std::shared_ptr<UniformBufferInput> const &, const char *, Eigen::Vector3f const &) = 0;
60-
virtual void set_v4f32(std::shared_ptr<UniformBufferInput> const &, const char *, Eigen::Vector4f const &) = 0;
61-
virtual void set_v2i32(std::shared_ptr<UniformBufferInput> const &, const char *, Eigen::Vector2i const &) = 0;
62-
virtual void set_v3i32(std::shared_ptr<UniformBufferInput> const &, const char *, Eigen::Vector3i const &) = 0;
63-
virtual void set_v4i32(std::shared_ptr<UniformBufferInput> const &, const char *, Eigen::Vector4i const &) = 0;
64-
virtual void set_v2ui32(std::shared_ptr<UniformBufferInput> const &, const char *, Eigen::Vector2<uint32_t> const &) = 0;
65-
virtual void set_v3ui32(std::shared_ptr<UniformBufferInput> const &, const char *, Eigen::Vector3<uint32_t> const &) = 0;
66-
virtual void set_v4ui32(std::shared_ptr<UniformBufferInput> const &, const char *, Eigen::Vector4<uint32_t> const &) = 0;
67-
virtual void set_m4f32(std::shared_ptr<UniformBufferInput> const &, const char *, Eigen::Matrix4f const &) = 0;
68-
virtual void set_tex(std::shared_ptr<UniformBufferInput> const &, const char *, std::shared_ptr<Texture2d> const &) = 0;
53+
virtual void set_i32(UniformBufferInput &in, const char *, int32_t) = 0;
54+
virtual void set_u32(UniformBufferInput &in, const char *, uint32_t) = 0;
55+
virtual void set_f32(UniformBufferInput &in, const char *, float) = 0;
56+
virtual void set_f64(UniformBufferInput &in, const char *, double) = 0;
57+
virtual void set_bool(UniformBufferInput &in, const char *, bool) = 0;
58+
virtual void set_v2f32(UniformBufferInput &in, const char *, Eigen::Vector2f const &) = 0;
59+
virtual void set_v3f32(UniformBufferInput &in, const char *, Eigen::Vector3f const &) = 0;
60+
virtual void set_v4f32(UniformBufferInput &in, const char *, Eigen::Vector4f const &) = 0;
61+
virtual void set_v2i32(UniformBufferInput &in, const char *, Eigen::Vector2i const &) = 0;
62+
virtual void set_v3i32(UniformBufferInput &in, const char *, Eigen::Vector3i const &) = 0;
63+
virtual void set_v4i32(UniformBufferInput &in, const char *, Eigen::Vector4i const &) = 0;
64+
virtual void set_v2ui32(UniformBufferInput &in, const char *, Eigen::Vector2<uint32_t> const &) = 0;
65+
virtual void set_v3ui32(UniformBufferInput &in, const char *, Eigen::Vector3<uint32_t> const &) = 0;
66+
virtual void set_v4ui32(UniformBufferInput &in, const char *, Eigen::Vector4<uint32_t> const &) = 0;
67+
virtual void set_m4f32(UniformBufferInput &in, const char *, Eigen::Matrix4f const &) = 0;
68+
virtual void set_tex(UniformBufferInput &in, const char *, std::shared_ptr<Texture2d> const &) = 0;
6969
};
7070

7171
} // namespace openage::renderer

libopenage/renderer/uniform_input.cpp

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -157,71 +157,71 @@ UniformBufferInput::UniformBufferInput(std::shared_ptr<UniformBuffer> const &buf
157157
void UniformBufferInput::update() {}
158158

159159
void UniformBufferInput::update(const char *unif, int32_t val) {
160-
this->buffer->set_i32(this->shared_from_this(), unif, val);
160+
this->buffer->set_i32(*this, unif, val);
161161
}
162162

163163
void UniformBufferInput::update(const char *unif, uint32_t val) {
164-
this->buffer->set_u32(this->shared_from_this(), unif, val);
164+
this->buffer->set_u32(*this, unif, val);
165165
}
166166

167167
void UniformBufferInput::update(const char *unif, float val) {
168-
this->buffer->set_f32(this->shared_from_this(), unif, val);
168+
this->buffer->set_f32(*this, unif, val);
169169
}
170170

171171
void UniformBufferInput::update(const char *unif, double val) {
172-
this->buffer->set_f64(this->shared_from_this(), unif, val);
172+
this->buffer->set_f64(*this, unif, val);
173173
}
174174

175175
void UniformBufferInput::update(const char *unif, bool val) {
176-
this->buffer->set_bool(this->shared_from_this(), unif, val);
176+
this->buffer->set_bool(*this, unif, val);
177177
}
178178

179179
void UniformBufferInput::update(const char *unif, Eigen::Vector2f const &val) {
180-
this->buffer->set_v2f32(this->shared_from_this(), unif, val);
180+
this->buffer->set_v2f32(*this, unif, val);
181181
}
182182

183183
void UniformBufferInput::update(const char *unif, Eigen::Vector3f const &val) {
184-
this->buffer->set_v3f32(this->shared_from_this(), unif, val);
184+
this->buffer->set_v3f32(*this, unif, val);
185185
}
186186

187187
void UniformBufferInput::update(const char *unif, Eigen::Vector4f const &val) {
188-
this->buffer->set_v4f32(this->shared_from_this(), unif, val);
188+
this->buffer->set_v4f32(*this, unif, val);
189189
}
190190

191191
void UniformBufferInput::update(const char *unif, Eigen::Vector2i const &val) {
192-
this->buffer->set_v2i32(this->shared_from_this(), unif, val);
192+
this->buffer->set_v2i32(*this, unif, val);
193193
}
194194

195195
void UniformBufferInput::update(const char *unif, Eigen::Vector3i const &val) {
196-
this->buffer->set_v3i32(this->shared_from_this(), unif, val);
196+
this->buffer->set_v3i32(*this, unif, val);
197197
}
198198

199199
void UniformBufferInput::update(const char *unif, Eigen::Vector4i const &val) {
200-
this->buffer->set_v4i32(this->shared_from_this(), unif, val);
200+
this->buffer->set_v4i32(*this, unif, val);
201201
}
202202

203203
void UniformBufferInput::update(const char *unif, Eigen::Vector2<uint32_t> const &val) {
204-
this->buffer->set_v2ui32(this->shared_from_this(), unif, val);
204+
this->buffer->set_v2ui32(*this, unif, val);
205205
}
206206

207207
void UniformBufferInput::update(const char *unif, Eigen::Vector3<uint32_t> const &val) {
208-
this->buffer->set_v3ui32(this->shared_from_this(), unif, val);
208+
this->buffer->set_v3ui32(*this, unif, val);
209209
}
210210

211211
void UniformBufferInput::update(const char *unif, Eigen::Vector4<uint32_t> const &val) {
212-
this->buffer->set_v4ui32(this->shared_from_this(), unif, val);
212+
this->buffer->set_v4ui32(*this, unif, val);
213213
}
214214

215215
void UniformBufferInput::update(const char *unif, std::shared_ptr<Texture2d> const &val) {
216-
this->buffer->set_tex(this->shared_from_this(), unif, val);
216+
this->buffer->set_tex(*this, unif, val);
217217
}
218218

219219
void UniformBufferInput::update(const char *unif, std::shared_ptr<Texture2d> &val) {
220-
this->buffer->set_tex(this->shared_from_this(), unif, val);
220+
this->buffer->set_tex(*this, unif, val);
221221
}
222222

223223
void UniformBufferInput::update(const char *unif, Eigen::Matrix4f const &val) {
224-
this->buffer->set_m4f32(this->shared_from_this(), unif, val);
224+
this->buffer->set_m4f32(*this, unif, val);
225225
}
226226

227227
} // namespace openage::renderer

0 commit comments

Comments
 (0)