Skip to content

Commit e57f865

Browse files
committed
renderer: Pass uniform ID by value to avoid dereference.
1 parent 3791e50 commit e57f865

File tree

5 files changed

+85
-85
lines changed

5 files changed

+85
-85
lines changed

libopenage/renderer/opengl/shader_program.cpp

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -500,7 +500,7 @@ void GlShaderProgram::set_unif(UniformInput &in,
500500
}
501501

502502
void GlShaderProgram::set_unif(UniformInput &in,
503-
const uniform_id_t &unif_id,
503+
uniform_id_t unif_id,
504504
void const *val,
505505
size_t size,
506506
GLenum type) {
@@ -596,68 +596,68 @@ void GlShaderProgram::set_tex(UniformInput &in, const char *unif, std::shared_pt
596596
this->set_unif(in, unif, &handle, get_uniform_type_size(GL_SAMPLER_2D), GL_SAMPLER_2D);
597597
}
598598

599-
void GlShaderProgram::set_i32(UniformInput &in, const uniform_id_t &id, int32_t val) {
599+
void GlShaderProgram::set_i32(UniformInput &in, uniform_id_t id, int32_t val) {
600600
this->set_unif(in, id, &val, get_uniform_type_size(GL_INT), GL_INT);
601601
}
602602

603-
void GlShaderProgram::set_u32(UniformInput &in, const uniform_id_t &id, uint32_t val) {
603+
void GlShaderProgram::set_u32(UniformInput &in, uniform_id_t id, uint32_t val) {
604604
this->set_unif(in, id, &val, get_uniform_type_size(GL_UNSIGNED_INT), GL_UNSIGNED_INT);
605605
}
606606

607-
void GlShaderProgram::set_f32(UniformInput &in, const uniform_id_t &id, float val) {
607+
void GlShaderProgram::set_f32(UniformInput &in, uniform_id_t id, float val) {
608608
this->set_unif(in, id, &val, get_uniform_type_size(GL_FLOAT), GL_FLOAT);
609609
}
610610

611-
void GlShaderProgram::set_f64(UniformInput &in, const uniform_id_t &id, double val) {
611+
void GlShaderProgram::set_f64(UniformInput &in, uniform_id_t id, double val) {
612612
// TODO requires extension
613613
this->set_unif(in, id, &val, get_uniform_type_size(GL_DOUBLE), GL_DOUBLE);
614614
}
615615

616-
void GlShaderProgram::set_bool(UniformInput &in, const uniform_id_t &id, bool val) {
616+
void GlShaderProgram::set_bool(UniformInput &in, uniform_id_t id, bool val) {
617617
this->set_unif(in, id, &val, get_uniform_type_size(GL_BOOL), GL_BOOL);
618618
}
619619

620-
void GlShaderProgram::set_v2f32(UniformInput &in, const uniform_id_t &id, Eigen::Vector2f const &val) {
620+
void GlShaderProgram::set_v2f32(UniformInput &in, uniform_id_t id, Eigen::Vector2f const &val) {
621621
this->set_unif(in, id, &val, get_uniform_type_size(GL_FLOAT_VEC2), GL_FLOAT_VEC2);
622622
}
623623

624-
void GlShaderProgram::set_v3f32(UniformInput &in, const uniform_id_t &id, Eigen::Vector3f const &val) {
624+
void GlShaderProgram::set_v3f32(UniformInput &in, uniform_id_t id, Eigen::Vector3f const &val) {
625625
this->set_unif(in, id, &val, get_uniform_type_size(GL_FLOAT_VEC3), GL_FLOAT_VEC3);
626626
}
627627

628-
void GlShaderProgram::set_v4f32(UniformInput &in, const uniform_id_t &id, Eigen::Vector4f const &val) {
628+
void GlShaderProgram::set_v4f32(UniformInput &in, uniform_id_t id, Eigen::Vector4f const &val) {
629629
this->set_unif(in, id, &val, get_uniform_type_size(GL_FLOAT_VEC4), GL_FLOAT_VEC4);
630630
}
631631

632-
void GlShaderProgram::set_v2i32(UniformInput &in, const uniform_id_t &id, Eigen::Vector2i const &val) {
632+
void GlShaderProgram::set_v2i32(UniformInput &in, uniform_id_t id, Eigen::Vector2i const &val) {
633633
this->set_unif(in, id, &val, get_uniform_type_size(GL_INT_VEC2), GL_INT_VEC2);
634634
}
635635

636-
void GlShaderProgram::set_v3i32(UniformInput &in, const uniform_id_t &id, Eigen::Vector3i const &val) {
636+
void GlShaderProgram::set_v3i32(UniformInput &in, uniform_id_t id, Eigen::Vector3i const &val) {
637637
this->set_unif(in, id, &val, get_uniform_type_size(GL_INT_VEC3), GL_INT_VEC3);
638638
}
639639

640-
void GlShaderProgram::set_v4i32(UniformInput &in, const uniform_id_t &id, Eigen::Vector4i const &val) {
640+
void GlShaderProgram::set_v4i32(UniformInput &in, uniform_id_t id, Eigen::Vector4i const &val) {
641641
this->set_unif(in, id, &val, get_uniform_type_size(GL_INT_VEC4), GL_INT_VEC4);
642642
}
643643

644-
void GlShaderProgram::set_v2ui32(UniformInput &in, const uniform_id_t &id, Eigen::Vector2<uint32_t> const &val) {
644+
void GlShaderProgram::set_v2ui32(UniformInput &in, uniform_id_t id, Eigen::Vector2<uint32_t> const &val) {
645645
this->set_unif(in, id, &val, get_uniform_type_size(GL_UNSIGNED_INT_VEC2), GL_UNSIGNED_INT_VEC2);
646646
}
647647

648-
void GlShaderProgram::set_v3ui32(UniformInput &in, const uniform_id_t &id, Eigen::Vector3<uint32_t> const &val) {
648+
void GlShaderProgram::set_v3ui32(UniformInput &in, uniform_id_t id, Eigen::Vector3<uint32_t> const &val) {
649649
this->set_unif(in, id, &val, get_uniform_type_size(GL_UNSIGNED_INT_VEC3), GL_UNSIGNED_INT_VEC3);
650650
}
651651

652-
void GlShaderProgram::set_v4ui32(UniformInput &in, const uniform_id_t &id, Eigen::Vector4<uint32_t> const &val) {
652+
void GlShaderProgram::set_v4ui32(UniformInput &in, uniform_id_t id, Eigen::Vector4<uint32_t> const &val) {
653653
this->set_unif(in, id, &val, get_uniform_type_size(GL_UNSIGNED_INT_VEC4), GL_UNSIGNED_INT_VEC4);
654654
}
655655

656-
void GlShaderProgram::set_m4f32(UniformInput &in, const uniform_id_t &id, Eigen::Matrix4f const &val) {
656+
void GlShaderProgram::set_m4f32(UniformInput &in, uniform_id_t id, Eigen::Matrix4f const &val) {
657657
this->set_unif(in, id, val.data(), get_uniform_type_size(GL_FLOAT_MAT4), GL_FLOAT_MAT4);
658658
}
659659

660-
void GlShaderProgram::set_tex(UniformInput &in, const uniform_id_t &id, std::shared_ptr<Texture2d> const &val) {
660+
void GlShaderProgram::set_tex(UniformInput &in, uniform_id_t id, std::shared_ptr<Texture2d> const &val) {
661661
auto tex = std::dynamic_pointer_cast<GlTexture2d>(val);
662662
GLuint handle = tex->get_handle();
663663
this->set_unif(in, id, &handle, get_uniform_type_size(GL_SAMPLER_2D), GL_SAMPLER_2D);

libopenage/renderer/opengl/shader_program.h

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -128,22 +128,22 @@ class GlShaderProgram final : public ShaderProgram
128128
void set_m4f32(UniformInput &in, const char *, Eigen::Matrix4f const &) override;
129129
void set_tex(UniformInput &in, const char *, std::shared_ptr<Texture2d> const &) override;
130130

131-
void set_i32(UniformInput &in, const uniform_id_t &, int32_t) override;
132-
void set_u32(UniformInput &in, const uniform_id_t &, uint32_t) override;
133-
void set_f32(UniformInput &in, const uniform_id_t &, float) override;
134-
void set_f64(UniformInput &in, const uniform_id_t &, double) override;
135-
void set_bool(UniformInput &in, const uniform_id_t &, bool) override;
136-
void set_v2f32(UniformInput &in, const uniform_id_t &, Eigen::Vector2f const &) override;
137-
void set_v3f32(UniformInput &in, const uniform_id_t &, Eigen::Vector3f const &) override;
138-
void set_v4f32(UniformInput &in, const uniform_id_t &, Eigen::Vector4f const &) override;
139-
void set_v2i32(UniformInput &in, const uniform_id_t &, Eigen::Vector2i const &) override;
140-
void set_v3i32(UniformInput &in, const uniform_id_t &, Eigen::Vector3i const &) override;
141-
void set_v4i32(UniformInput &in, const uniform_id_t &, Eigen::Vector4i const &) override;
142-
void set_v2ui32(UniformInput &in, const uniform_id_t &, Eigen::Vector2<uint32_t> const &) override;
143-
void set_v3ui32(UniformInput &in, const uniform_id_t &, Eigen::Vector3<uint32_t> const &) override;
144-
void set_v4ui32(UniformInput &in, const uniform_id_t &, Eigen::Vector4<uint32_t> const &) override;
145-
void set_m4f32(UniformInput &in, const uniform_id_t &, Eigen::Matrix4f const &) override;
146-
void set_tex(UniformInput &in, const uniform_id_t &, std::shared_ptr<Texture2d> const &) override;
131+
void set_i32(UniformInput &in, uniform_id_t id, int32_t) override;
132+
void set_u32(UniformInput &in, uniform_id_t id, uint32_t) override;
133+
void set_f32(UniformInput &in, uniform_id_t id, float) override;
134+
void set_f64(UniformInput &in, uniform_id_t id, double) override;
135+
void set_bool(UniformInput &in, uniform_id_t id, bool) override;
136+
void set_v2f32(UniformInput &in, uniform_id_t id, Eigen::Vector2f const &) override;
137+
void set_v3f32(UniformInput &in, uniform_id_t id, Eigen::Vector3f const &) override;
138+
void set_v4f32(UniformInput &in, uniform_id_t id, Eigen::Vector4f const &) override;
139+
void set_v2i32(UniformInput &in, uniform_id_t id, Eigen::Vector2i const &) override;
140+
void set_v3i32(UniformInput &in, uniform_id_t id, Eigen::Vector3i const &) override;
141+
void set_v4i32(UniformInput &in, uniform_id_t id, Eigen::Vector4i const &) override;
142+
void set_v2ui32(UniformInput &in, uniform_id_t id, Eigen::Vector2<uint32_t> const &) override;
143+
void set_v3ui32(UniformInput &in, uniform_id_t id, Eigen::Vector3<uint32_t> const &) override;
144+
void set_v4ui32(UniformInput &in, uniform_id_t id, Eigen::Vector4<uint32_t> const &) override;
145+
void set_m4f32(UniformInput &in, uniform_id_t id, Eigen::Matrix4f const &) override;
146+
void set_tex(UniformInput &in, uniform_id_t id, std::shared_ptr<Texture2d> const &) override;
147147

148148
private:
149149
/**
@@ -170,13 +170,13 @@ class GlShaderProgram final : public ShaderProgram
170170
* Set the uniform value via uniform ID from a uniform input.
171171
*
172172
* @param in Uniform input.
173-
* @param id ID of the uniform.
173+
* @param unif_id ID of the uniform.
174174
* @param value Value to set.
175175
* @param size Size of the value (in bytes).
176176
* @param type Type of the value.
177177
*/
178178
void set_unif(UniformInput &in,
179-
const uniform_id_t &unif_id,
179+
uniform_id_t unif_id,
180180
void const *value,
181181
size_t size,
182182
GLenum type);

libopenage/renderer/shader_program.h

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -111,22 +111,22 @@ class ShaderProgram : public std::enable_shared_from_this<ShaderProgram> {
111111
virtual void set_m4f32(UniformInput &in, const char *, Eigen::Matrix4f const &) = 0;
112112
virtual void set_tex(UniformInput &in, const char *, std::shared_ptr<Texture2d> const &) = 0;
113113

114-
virtual void set_i32(UniformInput &in, const uniform_id_t &, int32_t) = 0;
115-
virtual void set_u32(UniformInput &in, const uniform_id_t &, uint32_t) = 0;
116-
virtual void set_f32(UniformInput &in, const uniform_id_t &, float) = 0;
117-
virtual void set_f64(UniformInput &in, const uniform_id_t &, double) = 0;
118-
virtual void set_bool(UniformInput &in, const uniform_id_t &, bool) = 0;
119-
virtual void set_v2f32(UniformInput &in, const uniform_id_t &, Eigen::Vector2f const &) = 0;
120-
virtual void set_v3f32(UniformInput &in, const uniform_id_t &, Eigen::Vector3f const &) = 0;
121-
virtual void set_v4f32(UniformInput &in, const uniform_id_t &, Eigen::Vector4f const &) = 0;
122-
virtual void set_v2i32(UniformInput &in, const uniform_id_t &, Eigen::Vector2i const &) = 0;
123-
virtual void set_v3i32(UniformInput &in, const uniform_id_t &, Eigen::Vector3i const &) = 0;
124-
virtual void set_v4i32(UniformInput &in, const uniform_id_t &, Eigen::Vector4i const &) = 0;
125-
virtual void set_v2ui32(UniformInput &in, const uniform_id_t &, Eigen::Vector2<uint32_t> const &) = 0;
126-
virtual void set_v3ui32(UniformInput &in, const uniform_id_t &, Eigen::Vector3<uint32_t> const &) = 0;
127-
virtual void set_v4ui32(UniformInput &in, const uniform_id_t &, Eigen::Vector4<uint32_t> const &) = 0;
128-
virtual void set_m4f32(UniformInput &in, const uniform_id_t &, Eigen::Matrix4f const &) = 0;
129-
virtual void set_tex(UniformInput &in, const uniform_id_t &, std::shared_ptr<Texture2d> const &) = 0;
114+
virtual void set_i32(UniformInput &in, uniform_id_t id, int32_t) = 0;
115+
virtual void set_u32(UniformInput &in, uniform_id_t id, uint32_t) = 0;
116+
virtual void set_f32(UniformInput &in, uniform_id_t id, float) = 0;
117+
virtual void set_f64(UniformInput &in, uniform_id_t id, double) = 0;
118+
virtual void set_bool(UniformInput &in, uniform_id_t id, bool) = 0;
119+
virtual void set_v2f32(UniformInput &in, uniform_id_t id, Eigen::Vector2f const &) = 0;
120+
virtual void set_v3f32(UniformInput &in, uniform_id_t id, Eigen::Vector3f const &) = 0;
121+
virtual void set_v4f32(UniformInput &in, uniform_id_t id, Eigen::Vector4f const &) = 0;
122+
virtual void set_v2i32(UniformInput &in, uniform_id_t id, Eigen::Vector2i const &) = 0;
123+
virtual void set_v3i32(UniformInput &in, uniform_id_t id, Eigen::Vector3i const &) = 0;
124+
virtual void set_v4i32(UniformInput &in, uniform_id_t id, Eigen::Vector4i const &) = 0;
125+
virtual void set_v2ui32(UniformInput &in, uniform_id_t id, Eigen::Vector2<uint32_t> const &) = 0;
126+
virtual void set_v3ui32(UniformInput &in, uniform_id_t id, Eigen::Vector3<uint32_t> const &) = 0;
127+
virtual void set_v4ui32(UniformInput &in, uniform_id_t id, Eigen::Vector4<uint32_t> const &) = 0;
128+
virtual void set_m4f32(UniformInput &in, uniform_id_t id, Eigen::Matrix4f const &) = 0;
129+
virtual void set_tex(UniformInput &in, uniform_id_t id, std::shared_ptr<Texture2d> const &) = 0;
130130
};
131131

132132
} // namespace renderer

libopenage/renderer/uniform_input.cpp

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -82,71 +82,71 @@ void UniformInput::update(const char *unif, Eigen::Matrix4f const &val) {
8282
}
8383

8484

85-
void UniformInput::update(const uniform_id_t &id, int32_t val) {
85+
void UniformInput::update(uniform_id_t id, int32_t val) {
8686
this->program->set_i32(*this, id, val);
8787
}
8888

89-
void UniformInput::update(const uniform_id_t &id, uint32_t val) {
89+
void UniformInput::update(uniform_id_t id, uint32_t val) {
9090
this->program->set_u32(*this, id, val);
9191
}
9292

93-
void UniformInput::update(const uniform_id_t &id, float val) {
93+
void UniformInput::update(uniform_id_t id, float val) {
9494
this->program->set_f32(*this, id, val);
9595
}
9696

97-
void UniformInput::update(const uniform_id_t &id, double val) {
97+
void UniformInput::update(uniform_id_t id, double val) {
9898
this->program->set_f64(*this, id, val);
9999
}
100100

101-
void UniformInput::update(const uniform_id_t &id, bool val) {
101+
void UniformInput::update(uniform_id_t id, bool val) {
102102
this->program->set_bool(*this, id, val);
103103
}
104104

105-
void UniformInput::update(const uniform_id_t &id, Eigen::Vector2f const &val) {
105+
void UniformInput::update(uniform_id_t id, Eigen::Vector2f const &val) {
106106
this->program->set_v2f32(*this, id, val);
107107
}
108108

109-
void UniformInput::update(const uniform_id_t &id, Eigen::Vector3f const &val) {
109+
void UniformInput::update(uniform_id_t id, Eigen::Vector3f const &val) {
110110
this->program->set_v3f32(*this, id, val);
111111
}
112112

113-
void UniformInput::update(const uniform_id_t &id, Eigen::Vector4f const &val) {
113+
void UniformInput::update(uniform_id_t id, Eigen::Vector4f const &val) {
114114
this->program->set_v4f32(*this, id, val);
115115
}
116116

117-
void UniformInput::update(const uniform_id_t &id, Eigen::Vector2i const &val) {
117+
void UniformInput::update(uniform_id_t id, Eigen::Vector2i const &val) {
118118
this->program->set_v2i32(*this, id, val);
119119
}
120120

121-
void UniformInput::update(const uniform_id_t &id, Eigen::Vector3i const &val) {
121+
void UniformInput::update(uniform_id_t id, Eigen::Vector3i const &val) {
122122
this->program->set_v3i32(*this, id, val);
123123
}
124124

125-
void UniformInput::update(const uniform_id_t &id, Eigen::Vector4i const &val) {
125+
void UniformInput::update(uniform_id_t id, Eigen::Vector4i const &val) {
126126
this->program->set_v4i32(*this, id, val);
127127
}
128128

129-
void UniformInput::update(const uniform_id_t &id, Eigen::Vector2<uint32_t> const &val) {
129+
void UniformInput::update(uniform_id_t id, Eigen::Vector2<uint32_t> const &val) {
130130
this->program->set_v2ui32(*this, id, val);
131131
}
132132

133-
void UniformInput::update(const uniform_id_t &id, Eigen::Vector3<uint32_t> const &val) {
133+
void UniformInput::update(uniform_id_t id, Eigen::Vector3<uint32_t> const &val) {
134134
this->program->set_v3ui32(*this, id, val);
135135
}
136136

137-
void UniformInput::update(const uniform_id_t &id, Eigen::Vector4<uint32_t> const &val) {
137+
void UniformInput::update(uniform_id_t id, Eigen::Vector4<uint32_t> const &val) {
138138
this->program->set_v4ui32(*this, id, val);
139139
}
140140

141-
void UniformInput::update(const uniform_id_t &id, std::shared_ptr<Texture2d> const &val) {
141+
void UniformInput::update(uniform_id_t id, std::shared_ptr<Texture2d> const &val) {
142142
this->program->set_tex(*this, id, val);
143143
}
144144

145-
void UniformInput::update(const uniform_id_t &id, std::shared_ptr<Texture2d> &val) {
145+
void UniformInput::update(uniform_id_t id, std::shared_ptr<Texture2d> &val) {
146146
this->program->set_tex(*this, id, val);
147147
}
148148

149-
void UniformInput::update(const uniform_id_t &id, Eigen::Matrix4f const &val) {
149+
void UniformInput::update(uniform_id_t id, Eigen::Matrix4f const &val) {
150150
this->program->set_m4f32(*this, id, val);
151151
}
152152

libopenage/renderer/uniform_input.h

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -85,23 +85,23 @@ class UniformInput : public DataInput {
8585
void update(const char *unif, std::shared_ptr<Texture2d> &val) override;
8686
void update(const char *unif, Eigen::Matrix4f const &val) override;
8787

88-
void update(const uniform_id_t &id, int32_t val);
89-
void update(const uniform_id_t &id, uint32_t val);
90-
void update(const uniform_id_t &id, float val);
91-
void update(const uniform_id_t &id, double val);
92-
void update(const uniform_id_t &id, bool val);
93-
void update(const uniform_id_t &id, Eigen::Vector2f const &val);
94-
void update(const uniform_id_t &id, Eigen::Vector3f const &val);
95-
void update(const uniform_id_t &id, Eigen::Vector4f const &val);
96-
void update(const uniform_id_t &id, Eigen::Vector2i const &val);
97-
void update(const uniform_id_t &id, Eigen::Vector3i const &val);
98-
void update(const uniform_id_t &id, Eigen::Vector4i const &val);
99-
void update(const uniform_id_t &id, Eigen::Vector2<uint32_t> const &val);
100-
void update(const uniform_id_t &id, Eigen::Vector3<uint32_t> const &val);
101-
void update(const uniform_id_t &id, Eigen::Vector4<uint32_t> const &val);
102-
void update(const uniform_id_t &id, std::shared_ptr<Texture2d> const &val);
103-
void update(const uniform_id_t &id, std::shared_ptr<Texture2d> &val);
104-
void update(const uniform_id_t &id, Eigen::Matrix4f const &val);
88+
void update(uniform_id_t id, int32_t val);
89+
void update(uniform_id_t id, uint32_t val);
90+
void update(uniform_id_t id, float val);
91+
void update(uniform_id_t id, double val);
92+
void update(uniform_id_t id, bool val);
93+
void update(uniform_id_t id, Eigen::Vector2f const &val);
94+
void update(uniform_id_t id, Eigen::Vector3f const &val);
95+
void update(uniform_id_t id, Eigen::Vector4f const &val);
96+
void update(uniform_id_t id, Eigen::Vector2i const &val);
97+
void update(uniform_id_t id, Eigen::Vector3i const &val);
98+
void update(uniform_id_t id, Eigen::Vector4i const &val);
99+
void update(uniform_id_t id, Eigen::Vector2<uint32_t> const &val);
100+
void update(uniform_id_t id, Eigen::Vector3<uint32_t> const &val);
101+
void update(uniform_id_t id, Eigen::Vector4<uint32_t> const &val);
102+
void update(uniform_id_t id, std::shared_ptr<Texture2d> const &val);
103+
void update(uniform_id_t id, std::shared_ptr<Texture2d> &val);
104+
void update(uniform_id_t id, Eigen::Matrix4f const &val);
105105

106106
/**
107107
* Catch-all template in order to handle unsupported types and avoid infinite recursion.

0 commit comments

Comments
 (0)