Copyright Matus Chochlik. Distributed under the Boost Software License, Version 1.0. See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
#ifndef OGLPLUS_EXAMPLE_RESOURCES_HPP // NOLINT(llvm-header-guard)
#define OGLPLUS_EXAMPLE_RESOURCES_HPP
class example;
class volume_domain {
public:
void init(example&);
void compute(example&);
void draw(example&);
constexpr auto plane_count() const noexcept -> int {
return 64;
}
constexpr auto div_count() const noexcept -> int {
return plane_count() - 1;
}
constexpr auto cube_count() const noexcept -> int {
return div_count() * div_count() * div_count();
}
constexpr auto vertex_count() const noexcept -> int {
return plane_count() * plane_count() * plane_count();
}
static auto corner_loc() noexcept {
}
static auto field_binding() noexcept {
return 0U;
}
static auto metaballs_binding() noexcept {
return 1U;
}
static auto configs_binding() noexcept {
return 2U;
}
private:
oglp::owned_buffer_name _corners;
oglp::owned_buffer_name _indices;
oglp::owned_buffer_name _field;
oglp::owned_buffer_name _metaballs;
oglp::owned_buffer_name _configs;
};
class metaball_program {
public:
void init(example&);
void prepare_frame(example&);
void use(example&);
private:
};
class field_program {
public:
void init(example&);
void prepare_frame(example&);
void use(example&);
private:
};
class surface_program {
public:
void init(example&);
void prepare_frame(example&);
void use(example&);
private:
};
}
#endif