cgv
frame_buffer.h
1 #pragma once
2 
3 #include <cgv/data/component_format.h>
4 #include <cgv/render/texture.h>
5 #include <cgv/render/render_buffer.h>
6 #include <cgv/render/context.h>
7 
8 #include "lib_begin.h"
9 
10 namespace cgv {
11  namespace render {
12 
16 class CGV_API frame_buffer : public frame_buffer_base
17 {
18 public:
20  static int get_max_nr_color_attachments(const context& ctx);
22  static int get_max_nr_draw_buffers(const context& ctx);
24  mutable std::string last_error;
26  frame_buffer();
28  ~frame_buffer();
30  void destruct(const context& ctx);
34  bool create(const context& ctx, int _width = -1, int _height = -1);
36  void set_width(int _width);
38  void set_height(int _height);
40  void set_size(int _width, int _height);
42  int get_width() const { return width; }
44  int get_height() const { return height; }
45 
47  bool attach(const context& ctx, const render_buffer& rb, int i = 0);
49  bool attach(const context& ctx, const texture& tex2d, int level = 0, int i = 0);
51  bool attach(const context& ctx, const texture& tex3d, int z_or_cube_side, int level, int i);
53  bool is_complete(const context& ctx) const;
57  bool enable(context& ctx, int i0 = -1, int i1 = -1, int i2 = -1, int i3 = -1
58  , int i4 = -1, int i5 = -1, int i6 = -1, int i7 = -1
59  , int i8 = -1, int i9 = -1, int i10= -1, int i11= -1
60  , int i12= -1, int i13= -1, int i14= -1, int i15= -1);
63  bool enable(context& ctx, std::vector<int>& indices);
65  void push_viewport(context& ctx, const cgv::render::render_types::dvec2& depth_range = cgv::render::render_types::dvec2(0,1));
67  void pop_viewport(context& ctx);
69  bool disable(context& ctx);
70 };
71 
72  }
73 }
74 
75 #include <cgv/config/lib_end.h>
76 
cgv::render::render_buffer
Definition: render_buffer.h:16
cgv::math::fvec< double, 2 >
cgv::render::texture
Definition: texture.h:15
cgv::render::frame_buffer::last_error
std::string last_error
a string that contains the last error, which is only set by the init method
Definition: frame_buffer.h:24
cgv::render::frame_buffer_base
base interface for framebuffer
Definition: context.h:378
cgv::render::frame_buffer::get_width
int get_width() const
return the width
Definition: frame_buffer.h:42
cgv::render::frame_buffer
Definition: frame_buffer.h:17
cgv::render::frame_buffer::get_height
int get_height() const
return the height
Definition: frame_buffer.h:44
cgv
the cgv namespace
Definition: vr_calib.cxx:9
cgv::render::context
Definition: context.h:525