9 #ifndef OGLPLUS_EXAMPLE_RESOURCES_HPP // NOLINT(llvm-header-guard)
10 #define OGLPLUS_EXAMPLE_RESOURCES_HPP
26 void compute(example&);
29 constexpr
auto plane_count() const noexcept ->
int {
33 constexpr
auto div_count() const noexcept ->
int {
34 return plane_count() - 1;
37 constexpr
auto cube_count() const noexcept ->
int {
38 return div_count() * div_count() * div_count();
41 constexpr
auto vertex_count() const noexcept ->
int {
42 return plane_count() * plane_count() * plane_count();
45 static auto corner_loc() noexcept {
49 static auto field_binding() noexcept {
53 static auto metaballs_binding() noexcept {
57 static auto configs_binding() noexcept {
63 oglp::owned_buffer_name _corners;
64 oglp::owned_buffer_name _indices;
66 oglp::owned_buffer_name _field;
67 oglp::owned_buffer_name _metaballs;
68 oglp::owned_buffer_name _configs;
73 class metaball_program {
76 void prepare_frame(example&);
88 void prepare_frame(example&);
100 class surface_program {
103 void prepare_frame(example&);
Application harness / wrapper code is placed in this namespace.
Definition: eagine.hpp:72
prog_var_location< EAGINE_ID_V(Uniform)> uniform_location
Alias for shader program uniform location wrapper.
Definition: prog_var_loc.hpp:115
GLint int_type
Signed integer type.
Definition: config.hpp:70
GLuint uint_type
Unsigned integer type.
Definition: config.hpp:73
gl_owned_object_name< vertex_array_tag > owned_vertex_array_name
Alias for owned GL vertex array object handle.
Definition: object_name.hpp:224
prog_var_location< EAGINE_ID_V(VertexAttr)> vertex_attrib_location
Alias for program vertex attribute location wrapper.
Definition: prog_var_loc.hpp:104
gl_owned_object_name< program_tag > owned_program_name
Alias for owned GL program object handle.
Definition: object_name.hpp:188