40#ifndef GEOGRAM_GFX_GLUP_GLUP_CONTEXT_ES
41#define GEOGRAM_GFX_GLUP_GLUP_CONTEXT_ES
68 class Context_ES2 :
public Context {
79 ~Context_ES2()
override;
94 const char* profile_name()
const override;
99 void setup()
override;
104 bool primitive_supports_array_mode(
GLUPprimitive prim)
const override;
110 void get_primitive_pseudo_file(
111 std::vector<GLSL::Source>& sources
117 void get_vertex_shader_preamble_pseudo_file(
118 std::vector<GLSL::Source>& sources
124 void get_fragment_shader_preamble_pseudo_file(
125 std::vector<GLSL::Source>& sources
131 void get_toggles_pseudo_file(
132 std::vector<GLSL::Source>& sources
145 void do_update_uniform_buffer()
override;
150 void copy_uniform_state_to_current_program()
override;
155 void update_base_picking_id(GLint new_value)
override;
160 void setup_GLUP_POINTS()
override;
165 void setup_GLUP_LINES()
override;
170 void setup_GLUP_THICK_LINES()
override;
187 void setup_primitive_generic(
188 index_t nb_elements_per_glup_primitive,
195 void setup_GLUP_TRIANGLES()
override;
200 void setup_GLUP_QUADS()
override;
205 void setup_GLUP_TETRAHEDRA()
override;
210 void setup_GLUP_PRISMS()
override;
215 void setup_GLUP_HEXAHEDRA()
override;
220 void setup_GLUP_PYRAMIDS()
override;
225 void setup_GLUP_CONNECTORS()
override;
230 void setup_GLUP_SPHERES()
override;
235 void flush_immediate_buffers()
override;
246 bool cell_by_cell_clipping()
const;
256 bool sliced_cells_clipping()
const;
264 void flush_immediate_buffers_with_cell_by_cell_clipping();
271 void flush_immediate_buffers_with_sliced_cells_clipping();
275 index_t nb_clip_cells_elements_;
278 GLuint clip_cells_elements_VBO_;
279 GLuint clip_cells_VAO_;
281 GLuint sliced_cells_elements_VBO_;
282 GLuint sliced_cells_vertex_attrib_VBO_[4];
283 GLuint sliced_cells_VAO_;
285 double GLSL_version_;
287 bool vertex_id_VBO_bound_;
288 bool does_not_need_picking_;
GLUPprimitive
Symbolic values corresponding to GLUP primitive types.
Internal implementation of GLUP context.
Common include file, providing basic definitions. Should be included before anything else by all head...
byte * pointer
Pointer to unsigned byte(s)
Global Vorpaline namespace.
geo_index_t index_t
The type for storing and manipulating indices.