FastUIDraw
painter_shader_set.hpp
Go to the documentation of this file.
1 /*!
2  * \file painter_shader_set.hpp
3  * \brief file painter_shader_set.hpp
4  *
5  * Copyright 2016 by Intel.
6  *
7  * Contact: kevin.rogovin@gmail.com
8  *
9  * This Source Code Form is subject to the
10  * terms of the Mozilla Public License, v. 2.0.
11  * If a copy of the MPL was not distributed with
12  * this file, You can obtain one at
13  * http://mozilla.org/MPL/2.0/.
14  *
15  * \author Kevin Rogovin <kevin.rogovin@gmail.com>
16  *
17  */
18 
19 
20 #ifndef FASTUIDRAW_PAINTER_SHADER_SET_HPP
21 #define FASTUIDRAW_PAINTER_SHADER_SET_HPP
22 
31 
32 namespace fastuidraw
33 {
34 
35 /*!\addtogroup PainterShaders
36  * @{
37  */
38 
39  /*!
40  * \brief
41  * A PainterShaderSet provides shaders for blending
42  * and drawing each of the item types glyphs, stroking
43  * paths and filling paths.
44  */
46  {
47  public:
48  /*!
49  * Ctor, inits all as empty
50  */
51  PainterShaderSet(void);
52 
53  /*!
54  * Copy ctor.
55  * \param obj value from which to copy
56  */
58 
60 
61  /*!
62  * Assignment operator.
63  * \param rhs value from which to copy
64  */
66  operator=(const PainterShaderSet &rhs);
67 
68  /*!
69  * Swap operation
70  * \param obj object with which to swap
71  */
72  void
73  swap(PainterShaderSet &obj);
74 
75  /*!fn glyph_shader(void) const
76  * Shader set for rendering of glyphs with isotropic
77  * anti-aliasing.
78  */
79  const PainterGlyphShader&
80  glyph_shader(void) const;
81 
82  /*!
83  * Set the value returned by glyph_shader(void) const.
84  * \param sh value to use
85  */
88 
89  /*!
90  * Shader set for stroking of paths; the stroking
91  * parameters are given by a \ref PainterStrokeParams
92  * value.
93  */
94  const PainterStrokeShader&
95  stroke_shader(void) const;
96 
97  /*!
98  * Set the value returned by stroke_shader(void) const.
99  * \param sh value to use
100  */
103 
104  /*!
105  * Shader set for dashed stroking of paths;
106  * the stroking parameters are given by a \ref
107  * PainterDashedStrokeParams value.
108  */
110  dashed_stroke_shader(void) const;
111 
112  /*!
113  * Set the value returned by dashed_stroke_shader(void) const.
114  * \param sh value to use
115  */
118 
119  /*!
120  * Shader for filling of paths via \ref FilledPath.
121  */
122  const PainterFillShader&
123  fill_shader(void) const;
124 
125  /*!
126  * Set the value returned by fill_shader(void) const.
127  * \param sh value to use
128  */
130  fill_shader(const PainterFillShader &sh);
131 
132  /*!
133  * Blend shaders. If an element is a nullptr shader, then that
134  * blend mode is not supported.
135  */
136  const PainterBlendShaderSet&
137  blend_shaders(void) const;
138 
139  /*!
140  * Set the value returned by blend_shaders(void) const.
141  * \param sh value to use
142  */
145 
146  /*!
147  * Returns the \ref PainterBrushShader that performs
148  * the fixed function brush shading as encoded by
149  * \ref PainterBrush.
150  */
151  const PainterBrushShaderSet&
152  brush_shaders(void) const;
153 
154  /*!
155  * Set the value returned by brush_shaders(void) const.
156  * \param sh value to use
157  */
160 
161  private:
162  void *m_d;
163  };
164 
165 /*! @} */
166 }
167 
168 #endif
A PainterDashedStrokeShaderSet holds a collection of PainterStrokeShaderSet objects for the purpose o...
const PainterFillShader & fill_shader(void) const
file painter_brush_shader_set.hpp
all classes and functions of FastUIDraw are in the namespace fastuidraw.
Definition: colorstop.hpp:28
A PainterFillShader holds the shaders for drawing filled paths. Anti-aliasing is accomplished by draw...
const PainterBrushShaderSet & brush_shaders(void) const
file painter_blend_shader_set.hpp
file painter_brush_shader.hpp
A PainterStrokeShader holds shaders for stroking. It is to hold shaders for stroking paths linearly o...
file painter_dashed_stroke_shader_set.hpp
A PainterBlendShaderSet represents a set of shaders for the blend modes enumerated by PainterEnums::b...
const PainterDashedStrokeShaderSet & dashed_stroke_shader(void) const
file painter_glyph_shader.hpp
const PainterStrokeShader & stroke_shader(void) const
A PainterBrushShaderSet holds the PainterBrushShader objects to be used with the default brushes...
const PainterBlendShaderSet & blend_shaders(void) const
void swap(PainterShaderSet &obj)
A PainterShaderSet provides shaders for blending and drawing each of the item types glyphs...
file painter_enums.hpp
const PainterGlyphShader & glyph_shader(void) const
file painter_fill_shader.hpp
A PainterGlyphShader holds a shader for each glyph_type. The shaders are to handle attribute data as ...
PainterShaderSet & operator=(const PainterShaderSet &rhs)
file painter_stroke_shader.hpp