cgv
Loading...
Searching...
No Matches
gl_depth_peeler.h
1#pragma once
2
3#include <cgv/render/texture.h>
4
5#include "lib_begin.h"
6
7namespace cgv {
8 namespace render {
9 namespace gl {
10
11
44class CGV_API gl_depth_peeler
45{
46protected:
47 unsigned int query;
48 texture depth_texture;
49 float depth_bias;
50 bool front_to_back;
51 context* ctx_ptr;
52 bool _invert_t;
53public:
55 mutable std::string last_error;
57 gl_depth_peeler(bool front_to_back = true, float _depth_bias = 0.001);
59 virtual ~gl_depth_peeler();
61 void invert_t(bool enable = true);
63 void set_back_to_front();
65 void set_front_to_back();
67 bool is_front_to_back() const;
69 virtual void destruct(context& ctx);
71 void set_depth_bias(float bias);
73 float get_depth_bias() const;
75 bool is_initialized() const;
77 virtual bool init(context& ctx);
79 virtual void init_frame(context& ctx);
81 void copy_depth_buffer(context& ctx);
83 void begin_layer(context& ctx, int tex_unit = -1);
85 unsigned int end_layer(context& ctx);
86};
87
88
89 }
90 }
91}
92
93#include <cgv/config/lib_end.h>
base class for all drawables, which is independent of the used rendering API.
Definition context.h:621
OpenGL helper class to simplify depth peeling.
std::string last_error
a string that contains the last error, which is only set by the init method
the texture class encapsulates all functionality independent of the rendering api.
Definition texture.h:15
the cgv namespace
Definition print.h:11