OGLplus  (0.59.0) a C++ wrapper for rendering APIs

to_quads.hpp
Go to the documentation of this file.
1 
9 #ifndef EAGINE_SHAPES_TO_QUADS_HPP
10 #define EAGINE_SHAPES_TO_QUADS_HPP
11 
12 #include "delegated.hpp"
13 #include <eagine/config/basic.hpp>
14 
15 namespace eagine {
16 namespace shapes {
17 //------------------------------------------------------------------------------
21 class to_quads_gen : public delegated_gen {
22 public:
23  to_quads_gen(std::shared_ptr<generator> gen) noexcept
24  : delegated_gen{std::move(gen)} {}
25 
26  auto index_count(drawing_variant) -> span_size_t override;
27 
28  void indices(drawing_variant, span<std::uint8_t> dest) override;
29 
30  void indices(drawing_variant, span<std::uint16_t> dest) override;
31 
32  void indices(drawing_variant, span<std::uint32_t> dest) override;
33 
35 
36  void instructions(drawing_variant, span<draw_operation> ops) override;
37 
38 private:
39  template <typename T>
40  void _indices(drawing_variant, span<T> dest) noexcept;
41 };
42 //------------------------------------------------------------------------------
45 static inline auto to_quads(std::shared_ptr<generator> gen) noexcept {
46  return std::make_unique<to_quads_gen>(std::move(gen));
47 }
48 //------------------------------------------------------------------------------
49 } // namespace shapes
50 } // namespace eagine
51 
52 #if !EAGINE_LINK_LIBRARY || defined(EAGINE_IMPLEMENTING_LIBRARY)
53 #include <eagine/shapes/to_quads.inl>
54 #endif
55 
56 #endif // EAGINE_SHAPES_TO_QUADS_HPP
std::ptrdiff_t span_size_t
Signed span size type used by eagine.
Definition: types.hpp:36
void instructions(drawing_variant, span< draw_operation > ops) override
Fetches the drawing operations for the specified drawing variant.
Common code is placed in this namespace.
Definition: eagine.hpp:21
auto operation_count()
Returns the number of drawing instructions for the default variant.
Definition: gen_base.hpp:179
Generator modifier transforming triangle strips to quads (lines with adjacency)
Definition: to_quads.hpp:21
void indices(drawing_variant, span< std::uint8_t > dest) override
Fetches the index data for the specified drawing variant.
span_size_t drawing_variant
Alias for shape drawing variant index type.
Definition: gen_base.hpp:31
static auto to_quads(std::shared_ptr< generator > gen) noexcept
Constructs instances of to_quads_gen modifier.
Definition: to_quads.hpp:45
Base class for delegating shape generators based on other generators.
Definition: delegated.hpp:21
auto index_count()
Returns the index count for the default drawing variant.
Definition: gen_base.hpp:147

Copyright © 2015-2021 Matúš Chochlík.
<chochlik -at -gmail.com>
Documentation generated on Tue Apr 13 2021 by Doxygen (version 1.8.17).