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 surface_program {
public:
void init(execution_context&, video_context&);
void clean_up(video_context&);
void prepare_frame(video_context&, orbiting_camera& camera, float t);
private:
};
class halo_program {
public:
void init(execution_context&, video_context&);
void clean_up(video_context&);
void prepare_frame(video_context&, orbiting_camera& camera, float t);
private:
};
class shape_geometry {
public:
shape_geometry(std::shared_ptr<shapes::generator> gen)
: _gen{std::move(gen)} {}
void init(execution_context&, video_context&);
void clean_up(video_context&);
void draw(execution_context&, video_context&);
static auto position_loc() noexcept {
}
static auto normal_loc() noexcept {
}
private:
std::shared_ptr<shapes::generator> _gen;
oglp::owned_buffer_name _positions;
oglp::owned_buffer_name _normals;
oglp::owned_buffer_name _indices;
std::vector<oglp::shape_draw_operation> _ops;
};
}
#endif