193 void cache_uniforms()
195 cache_uniform(program.get(), u_sunLuminance,
"u_sunLuminance", gfx::uniform_type::Vec4);
196 cache_uniform(program.get(), u_skyLuminanceXYZ,
"u_skyLuminanceXYZ", gfx::uniform_type::Vec4);
197 cache_uniform(program.get(), u_skyLuminance,
"u_skyLuminance", gfx::uniform_type::Vec4);
198 cache_uniform(program.get(), u_sunDirection,
"u_sunDirection", gfx::uniform_type::Vec4);
199 cache_uniform(program.get(), u_parameters,
"u_parameters", gfx::uniform_type::Vec4);
200 cache_uniform(program.get(), u_perezCoeff,
"u_perezCoeff", gfx::uniform_type::Vec4);
201 cache_uniform(program.get(), u_cloudParams,
"u_cloudParams", gfx::uniform_type::Vec4);
202 cache_uniform(program.get(), u_cloudParams2,
"u_cloudParams2", gfx::uniform_type::Vec4);
203 cache_uniform(program.get(), s_cloudTex,
"s_cloudTex", gfx::uniform_type::Sampler);
204 cache_uniform(program.get(), s_cloudNoise2D,
"s_cloudNoise2D", gfx::uniform_type::Sampler);
219 std::unique_ptr<gpu_program> program;
221 } atmospheric_program_;
223 struct cloud_program : uniforms_cache
225 void cache_uniforms()
227 cache_uniform(program.get(), u_skyLuminanceXYZ,
"u_skyLuminanceXYZ", gfx::uniform_type::Vec4);
228 cache_uniform(program.get(), u_skyLuminance,
"u_skyLuminance", gfx::uniform_type::Vec4);
229 cache_uniform(program.get(), u_sunLuminance,
"u_sunLuminance", gfx::uniform_type::Vec4);
230 cache_uniform(program.get(), u_sunDirection,
"u_sunDirection", gfx::uniform_type::Vec4);
231 cache_uniform(program.get(), u_parameters,
"u_parameters", gfx::uniform_type::Vec4);
232 cache_uniform(program.get(), u_perezCoeff,
"u_perezCoeff", gfx::uniform_type::Vec4);
233 cache_uniform(program.get(), u_cloudParams,
"u_cloudParams", gfx::uniform_type::Vec4);
234 cache_uniform(program.get(), u_cloudParams2,
"u_cloudParams2", gfx::uniform_type::Vec4);
235 cache_uniform(program.get(), u_cloudParams3,
"u_cloudParams3", gfx::uniform_type::Vec4);
236 cache_uniform(program.get(), u_cloudParams4,
"u_cloudParams4", gfx::uniform_type::Vec4);
237 cache_uniform(program.get(), s_cloudNoise,
"s_cloudNoise", gfx::uniform_type::Sampler);
238 cache_uniform(program.get(), s_cloudHistory,
"s_cloudHistory", gfx::uniform_type::Sampler);
239 cache_uniform(program.get(), u_cloudFrame,
"u_cloudFrame", gfx::uniform_type::Vec4);
240 cache_uniform(program.get(), u_prevViewProj,
"u_prevViewProj", gfx::uniform_type::Mat4);
258 std::unique_ptr<gpu_program> program;
263 std::unique_ptr<gfx::vertex_buffer> vb_;
264 std::unique_ptr<gfx::index_buffer> ib_;
266 detail::sun_controller sun_;