13 #ifndef OGLPLUS_EXT_NV_PATH_RENDERING_PATH_ARRAY_1203031902_HPP
14 #define OGLPLUS_EXT_NV_PATH_RENDERING_PATH_ARRAY_1203031902_HPP
16 #if OGLPLUS_DOCUMENTATION_ONLY || GL_NV_path_rendering
33 :
public Array<PathNV>
46 template <
typename CharType>
49 const GLchar* font_name,
52 const CharType* char_codes,
54 GLuint parameter_template,
58 OGLPLUS_GLFUNC(PathGlyphsNV)(
61 (
const void*)font_name,
62 GLbitfield(font_style),
64 GetDataType<CharType>(),
65 (
const void*)char_codes,
66 GLenum(handle_missing_glyphs),
73 EnumParam(font_target)
83 template <
typename CharType>
86 const GLchar* font_name,
88 const std::vector<CharType>& char_codes,
90 GLuint parameter_template,
94 OGLPLUS_GLFUNC(PathGlyphsNV)(
97 (
const void*)font_name,
98 GLbitfield(font_style),
99 GLsizei(char_codes.size()),
100 GetDataType<CharType>(),
101 (
const void*)char_codes.data(),
102 GLenum(handle_missing_glyphs),
109 EnumParam(font_target)
121 const GLchar* font_name,
125 GLuint parameter_template,
129 OGLPLUS_GLFUNC(PathGlyphsNV)(
132 (
const void*)font_name,
133 GLbitfield(font_style),
136 (
const void*)char_codes.
c_str(),
137 GLenum(handle_missing_glyphs),
144 EnumParam(font_target)
156 const GLchar* font_name,
161 GLuint parameter_template,
165 OGLPLUS_GLFUNC(PathGlyphRangeNV)(
168 (
const void*)font_name,
169 GLbitfield(font_style),
172 GLenum(handle_missing_glyphs),
179 EnumParam(font_target)
189 template <
typename IndexType>
193 const IndexType* indices,
194 GLfloat advance_scale,
195 GLfloat kerning_scale,
197 GLfloat* returned_values
200 OGLPLUS_GLFUNC(GetPathSpacingNV)(
203 GLenum(GetDataType<IndexType>()),
204 (
const void*)indices,
208 GLenum(transform_type),
224 template <
typename IndexType>
227 const std::vector<IndexType>& indices,
228 GLfloat advance_scale,
229 GLfloat kerning_scale,
231 std::vector<GLfloat>& returned_values
234 OGLPLUS_GLFUNC(GetPathSpacingNV)(
236 GLsizei(indices.size()),
237 GLenum(GetDataType<IndexType>()),
238 (
const void*)indices.data(),
242 GLenum(transform_type),
243 returned_values.data()
261 GLfloat advance_scale,
262 GLfloat kerning_scale,
264 std::vector<GLfloat>& returned_values
267 OGLPLUS_GLFUNC(GetPathSpacingNV)(
269 GLsizei(indices.
size()+1),
271 (
const void*)indices.
c_str(),
275 GLenum(transform_type),
276 returned_values.data()
291 template <
typename IndexType>
295 const IndexType* indices,
297 GLfloat* returned_values
300 OGLPLUS_GLFUNC(GetPathMetricsNV)(
301 GLbitfield(query_mask),
303 GLenum(GetDataType<IndexType>()),
304 (
const void*)indices,
309 OGLPLUS_CHECK_SIMPLE(GetPathMetricsNV);
318 template <
typename IndexType>
321 const std::vector<IndexType>& indices,
323 GLfloat* returned_values
326 OGLPLUS_GLFUNC(GetPathMetricsNV)(
327 GLbitfield(query_mask),
328 GLsizei(indices.size()),
329 GLenum(GetDataType<IndexType>()),
330 (
const void*)indices.data(),
335 OGLPLUS_CHECK_SIMPLE(GetPathMetricsNV);
348 GLfloat* returned_values
351 OGLPLUS_GLFUNC(GetPathMetricsNV)(
352 GLbitfield(query_mask),
353 GLsizei(indices.
size()+1),
355 (
const void*)indices.
c_str(),
360 OGLPLUS_CHECK_SIMPLE(GetPathMetricsNV);
373 GLfloat* returned_values
376 OGLPLUS_GLFUNC(GetPathMetricRangeNV)(
377 GLbitfield(query_mask),
383 OGLPLUS_CHECK_SIMPLE(GetPathMetricRangeNV);
392 template <
typename IndexType>
395 const IndexType* paths,
399 const GLfloat* transform_values
402 OGLPLUS_GLFUNC(StencilFillPathInstancedNV)(
404 GLenum(GetDataType<IndexType>()),
409 GLenum(transform_type),
413 StencilFillPathInstancedNV,
425 template <
typename IndexType>
427 const std::vector<IndexType>& paths,
431 const std::vector<GLfloat>& transform_values
436 OGLPLUS_GLFUNC(StencilFillPathInstancedNV)(
437 GLsizei(paths.size()),
438 GLenum(GetDataType<IndexType>()),
439 (
const void*)paths.data(),
443 GLenum(transform_type),
444 transform_values.data()
447 StencilFillPathInstancedNV,
464 const std::vector<GLfloat>& transform_values
469 OGLPLUS_GLFUNC(StencilFillPathInstancedNV)(
470 GLsizei(paths.
size()),
472 (
const void*)paths.
c_str(),
476 GLenum(transform_type),
477 transform_values.data()
480 StencilFillPathInstancedNV,
492 template <
typename IndexType>
495 const IndexType* paths,
498 const GLfloat* transform_values
501 OGLPLUS_GLFUNC(CoverFillPathInstancedNV)(
503 GLenum(GetDataType<IndexType>()),
507 GLenum(transform_type),
511 CoverFillPathInstancedNV,
523 template <
typename IndexType>
525 const std::vector<IndexType>& paths,
528 const std::vector<GLfloat>& transform_values
531 OGLPLUS_GLFUNC(CoverFillPathInstancedNV)(
532 GLsizei(paths.size()),
533 GLenum(GetDataType<IndexType>()),
534 (
const void*)paths.data(),
537 GLenum(transform_type),
538 transform_values.data()
541 CoverFillPathInstancedNV,
557 const std::vector<GLfloat>& transform_values
560 OGLPLUS_GLFUNC(CoverFillPathInstancedNV)(
561 GLsizei(paths.
size()),
563 (
const void*)paths.
c_str(),
566 GLenum(transform_type),
567 transform_values.data()
570 CoverFillPathInstancedNV,
582 template <
typename IndexType>
585 const IndexType* paths,
589 const GLfloat* transform_values
592 OGLPLUS_GLFUNC(StencilStrokePathInstancedNV)(
594 GLenum(GetDataType<IndexType>()),
599 GLenum(transform_type),
602 OGLPLUS_CHECK_SIMPLE(StencilStrokePathInstancedNV);
611 template <
typename IndexType>
613 const std::vector<IndexType>& paths,
617 const std::vector<GLfloat>& transform_values
620 OGLPLUS_GLFUNC(StencilStrokePathInstancedNV)(
621 GLsizei(paths.size()),
622 GLenum(GetDataType<IndexType>()),
623 (
const void*)paths.data(),
627 GLenum(transform_type),
628 transform_values.data()
630 OGLPLUS_CHECK_SIMPLE(StencilStrokePathInstancedNV);
644 const std::vector<GLfloat>& transform_values
647 OGLPLUS_GLFUNC(StencilStrokePathInstancedNV)(
648 GLsizei(paths.
size()),
650 (
const void*)paths.
c_str(),
654 GLenum(transform_type),
655 transform_values.data()
657 OGLPLUS_CHECK_SIMPLE(StencilStrokePathInstancedNV);
666 template <
typename IndexType>
669 const IndexType* paths,
672 const GLfloat* transform_values
675 OGLPLUS_GLFUNC(CoverStrokePathInstancedNV)(
677 GLenum(GetDataType<IndexType>()),
681 GLenum(transform_type),
685 CoverStrokePathInstancedNV,
697 template <
typename IndexType>
699 const std::vector<IndexType>& paths,
702 const std::vector<GLfloat>& transform_values
705 OGLPLUS_GLFUNC(CoverStrokePathInstancedNV)(
706 GLsizei(paths.size()),
707 GLenum(GetDataType<IndexType>()),
708 (
const void*)paths.data(),
711 GLenum(transform_type),
712 transform_values.data()
715 CoverStrokePathInstancedNV,
731 const std::vector<GLfloat>& transform_values
734 OGLPLUS_GLFUNC(CoverStrokePathInstancedNV)(
735 GLsizei(paths.
size()),
737 (
const void*)paths.
c_str(),
740 GLenum(transform_type),
741 transform_values.data()
744 CoverStrokePathInstancedNV,
754 #endif // NV_path_rendering
756 #endif // include guard
const Char * c_str(void) const
Returns the null-terminated c-string.
Definition: ref_tpl.hpp:200
PathArrayNV & GetMetricRange(Bitfield< PathNVMetricQuery > query_mask, GLsizei num_paths, GLsizei stride, GLfloat *returned_values)
Queries the glyph metrics associated with a range of path objects.
Definition: path_array.hpp:369
Reference< PathNV > reference
Reference to elements.
Definition: array.hpp:108
PathNVFillCoverMode
Path fill covering mode.
Definition: fill_cover_mode.hpp:27
PathArrayNV & CoverFillInstanced(GLsizei num_paths, const IndexType *paths, PathNVFillCoverMode mode, PathNVTransformType transform_type, const GLfloat *transform_values)
Covers the path interiors (fill)
Definition: path_array.hpp:493
PathNVStrokeCoverMode
Path stroke covering move.
Definition: stroke_cover_mode.hpp:27
PathArrayNV & GetSpacing(PathNVListMode list_mode, const std::vector< IndexType > &indices, GLfloat advance_scale, GLfloat kerning_scale, PathNVTransformType transform_type, std::vector< GLfloat > &returned_values)
Queries the glyph spacing for paths in the array.
Definition: path_array.hpp:225
PathArrayNV(GLsizei count)
Creates a sequence of count paths.
Definition: path_array.hpp:37
Array of PathNV objects and related operations.
Definition: path_array.hpp:32
This template serves as a wrapper for OpenGL bitfields.
Definition: bitfield.hpp:56
PathArrayNV & CoverFillInstanced(const std::vector< IndexType > &paths, PathNVFillCoverMode mode, PathNVTransformType transform_type, const std::vector< GLfloat > &transform_values)
Covers the path interiors (fill)
Definition: path_array.hpp:524
PathArrayNV & Glyphs(PathNVFontTarget font_target, const GLchar *font_name, Bitfield< PathNVFontStyle > font_style, const std::vector< CharType > &char_codes, PathNVMissingGlyph handle_missing_glyphs, GLuint parameter_template, GLfloat em_scale)
Creates a range of paths from specified font for specified chars.
Definition: path_array.hpp:84
Wrapper for the NV_path_rendering metric query enumeration.
std::size_t size(void) const
Return the size (length) string.
Definition: ref_tpl.hpp:149
PathNVFillMode
Path fill mode.
Definition: fill_mode.hpp:27
PathArrayNV & StencilStrokeInstanced(const std::vector< IndexType > &paths, GLint reference, GLuint mask, PathNVTransformType transform_type, const std::vector< GLfloat > &transform_values)
Writes the path interiors strokes to the stencil buffer.
Definition: path_array.hpp:612
Wrapper for the NV_path_rendering path class.
PathArrayNV & CoverStrokeInstanced(const std::vector< IndexType > &paths, PathNVStrokeCoverMode mode, PathNVTransformType transform_type, const std::vector< GLfloat > &transform_values)
Covers the path strokes.
Definition: path_array.hpp:698
String const reference wrapper template.
Definition: ref_tpl.hpp:72
PathArrayNV & CoverStrokeInstanced(GLsizei num_paths, const IndexType *paths, PathNVStrokeCoverMode mode, PathNVTransformType transform_type, const GLfloat *transform_values)
Covers the path strokes.
Definition: path_array.hpp:667
PathArrayNV & StencilFillInstanced(GLsizei num_paths, const IndexType *paths, PathNVFillMode mode, GLuint mask, PathNVTransformType transform_type, const GLfloat *transform_values)
Writes the path interiors (fill) into the stencil buffer.
Definition: path_array.hpp:393
Wrapper for the NV_path_rendering list mode enumeration.
PathArrayNV & CoverFillInstanced(StrCRef paths, PathNVFillCoverMode mode, PathNVTransformType transform_type, const std::vector< GLfloat > &transform_values)
Covers the path interiors (fill)
Definition: path_array.hpp:553
Wrapper for the NV_path_rendering missing glyph enumeration.
PathArrayNV & StencilStrokeInstanced(GLsizei num_paths, const IndexType *paths, GLint reference, GLuint mask, PathNVTransformType transform_type, const GLfloat *transform_values)
Writes the path interiors strokes to the stencil buffer.
Definition: path_array.hpp:583
PathArrayNV & Glyphs(PathNVFontTarget font_target, const GLchar *font_name, Bitfield< PathNVFontStyle > font_style, StrCRef char_codes, PathNVMissingGlyph handle_missing_glyphs, GLuint parameter_template, GLfloat em_scale)
Creates a range of paths from specified font for specified chars.
Definition: path_array.hpp:119
PathArrayNV & GlyphRange(PathNVFontTarget font_target, const GLchar *font_name, Bitfield< PathNVFontStyle > font_style, GLuint first_glyph, GLsizei num_glyphs, PathNVMissingGlyph handle_missing_glyphs, GLuint parameter_template, GLfloat em_scale)
Creates a range of paths from specified font.
Definition: path_array.hpp:154
PathArrayNV & GetSpacing(PathNVListMode list_mode, StrCRef indices, GLfloat advance_scale, GLfloat kerning_scale, PathNVTransformType transform_type, std::vector< GLfloat > &returned_values)
Queries the glyph spacing for paths in the array.
Definition: path_array.hpp:258
PathArrayNV & StencilStrokeInstanced(StrCRef paths, GLint reference, GLuint mask, PathNVTransformType transform_type, const std::vector< GLfloat > &transform_values)
Writes the path interiors strokes to the stencil buffer.
Definition: path_array.hpp:639
Exception class for general OpenGL errors.
Definition: basic.hpp:43
PathArrayNV & StencilFillInstanced(StrCRef paths, PathNVFillMode mode, GLuint mask, PathNVTransformType transform_type, const std::vector< GLfloat > &transform_values)
Writes the path interiors (fill) into the stencil buffer.
Definition: path_array.hpp:459
PathNVMissingGlyph
Path missing glyph action mode enumeration.
Definition: missing_glyph.hpp:27
PathArrayNV & GetSpacing(PathNVListMode list_mode, GLsizei num_indices, const IndexType *indices, GLfloat advance_scale, GLfloat kerning_scale, PathNVTransformType transform_type, GLfloat *returned_values)
Queries the glyph spacing for paths in the array.
Definition: path_array.hpp:190
PathArrayNV & Glyphs(PathNVFontTarget font_target, const GLchar *font_name, Bitfield< PathNVFontStyle > font_style, GLsizei num_glyphs, const CharType *char_codes, PathNVMissingGlyph handle_missing_glyphs, GLuint parameter_template, GLfloat em_scale)
Creates a range of paths from specified font for specified chars.
Definition: path_array.hpp:47
PathArrayNV & GetMetrics(Bitfield< PathNVMetricQuery > query_mask, StrCRef indices, GLsizei stride, GLfloat *returned_values)
Queries the glyph metrics associated with a sequence of path objects.
Definition: path_array.hpp:344
Wrapper for the NV_path_rendering font target enumeration.
PathArrayNV & CoverStrokeInstanced(StrCRef paths, PathNVStrokeCoverMode mode, PathNVTransformType transform_type, const std::vector< GLfloat > &transform_values)
Covers the path strokes.
Definition: path_array.hpp:727
PathNVListMode
Path list mode enumeration.
Definition: list_mode.hpp:27
PathNVTransformType
Path transform type enumeration.
Definition: transform_type.hpp:27
Allows to allocate and manage several instances of Object at the same time.
Definition: fwd.hpp:183
PathNVFontTarget
Path font target enumeration.
Definition: font_target.hpp:27
Object< PathNVOps > PathNV
An oglplus_object encapsulating the nVidia path functionality.
Definition: path.hpp:1019
Allows to make managed copies of instances of Object.
Definition: fwd.hpp:172
PathArrayNV & GetMetrics(Bitfield< PathNVMetricQuery > query_mask, const std::vector< IndexType > &indices, GLsizei stride, GLfloat *returned_values)
Queries the glyph metrics associated with a sequence of path objects.
Definition: path_array.hpp:319
Wrapper for the NV_path_rendering font style enumeration.
PathArrayNV & StencilFillInstanced(const std::vector< IndexType > &paths, PathNVFillMode mode, GLuint mask, PathNVTransformType transform_type, const std::vector< GLfloat > &transform_values)
Writes the path interiors (fill) into the stencil buffer.
Definition: path_array.hpp:426
PathArrayNV & GetMetrics(Bitfield< PathNVMetricQuery > query_mask, GLsizei num_indices, const IndexType *indices, GLsizei stride, GLfloat *returned_values)
Queries the glyph metrics associated with a sequence of path objects.
Definition: path_array.hpp:292