40#ifndef GEOGRAM_GFX_GLUP_GLUP_CONTEXT_GLSL
41#define GEOGRAM_GFX_GLUP_GLUP_CONTEXT_GLSL
67 class Context_GLSL140 :
public Context {
77 const char* profile_name()
const override;
82 void setup()
override;
88 void setup_GLUP_POINTS()
override;
93 void setup_GLUP_LINES()
override;
98 void setup_GLUP_THICK_LINES()
override;
103 void setup_GLUP_TRIANGLES()
override;
108 void setup_GLUP_SPHERES()
override;
113 void get_vertex_shader_preamble_pseudo_file(
114 std::vector<GLSL::Source>& sources
120 void get_fragment_shader_preamble_pseudo_file(
121 std::vector<GLSL::Source>& sources
127 void get_primitive_pseudo_file(
128 std::vector<GLSL::Source>& sources
147 class Context_GLSL150 :
public Context_GLSL140 {
158 const char* profile_name()
const override;
163 void setup()
override;
169 void setup_GLUP_THICK_LINES()
override;
174 void setup_GLUP_TRIANGLES()
override;
179 void setup_GLUP_QUADS()
override;
184 void setup_GLUP_TETRAHEDRA()
override;
189 void setup_GLUP_PRISMS()
override;
194 void setup_GLUP_HEXAHEDRA()
override;
199 void setup_GLUP_PYRAMIDS()
override;
204 void setup_GLUP_CONNECTORS()
override;
209 void get_geometry_shader_preamble_pseudo_file(
210 std::vector<GLSL::Source>& sources
218 virtual void get_geometry_shader_layout(
219 std::vector<GLSL::Source>& sources
225 void get_primitive_pseudo_file(
226 std::vector<GLSL::Source>& sources
240 class Context_GLSL440 :
public Context_GLSL150 {
251 const char* profile_name()
const override;
257 void setup_GLUP_HEXAHEDRA()
override;
262 void setup_GLUP_PYRAMIDS()
override;
267 void get_vertex_shader_preamble_pseudo_file(
268 std::vector<GLSL::Source>& sources
274 void get_fragment_shader_preamble_pseudo_file(
275 std::vector<GLSL::Source>& sources
281 void get_geometry_shader_preamble_pseudo_file(
282 std::vector<GLSL::Source>& sources
288 void get_tess_evaluation_shader_preamble_pseudo_file(
289 std::vector<GLSL::Source>& sources
295 void get_primitive_pseudo_file(
296 std::vector<GLSL::Source>& sources
302 void get_geometry_shader_layout(
303 std::vector<GLSL::Source>& sources
306 bool use_tessellation_;
Internal implementation of GLUP context.
Common include file, providing basic definitions. Should be included before anything else by all head...
Global Vorpaline namespace.