Skip to content

Commit 2e0679e

Browse files
committed
Ensure R6 compliance
Chapter 12. Surfaces through to 12.14.5
1 parent c78a494 commit 2e0679e

File tree

5 files changed

+43
-66
lines changed

5 files changed

+43
-66
lines changed

N3888_RefImpl/src/display_surface-common.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ void display_surface::_Render_for_scaling_uniform_or_letterbox() {
8080
cairo_pattern_set_extend(pttn, _Extend_to_cairo_extend_t(props.wrap_mode()));
8181
cairo_pattern_set_filter(pttn, _Filter_to_cairo_filter_t(props.filter()));
8282
cairo_matrix_t cPttnMatrix;
83-
const auto& m = props.matrix();
83+
const auto& m = props.brush_matrix();
8484
cairo_matrix_init(&cPttnMatrix, m.m00, m.m01, m.m10, m.m11, m.m20, m.m21);
8585
cairo_pattern_set_matrix(pttn, &cPttnMatrix);
8686
cairo_set_source(_Native_context.get(), pttn);
@@ -139,7 +139,7 @@ void display_surface::_Render_for_scaling_uniform_or_letterbox() {
139139
cairo_pattern_set_extend(pttn, _Extend_to_cairo_extend_t(props.wrap_mode()));
140140
cairo_pattern_set_filter(pttn, _Filter_to_cairo_filter_t(props.filter()));
141141
cairo_matrix_t cPttnMatrix;
142-
const auto& m = props.matrix();
142+
const auto& m = props.brush_matrix();
143143
cairo_matrix_init(&cPttnMatrix, m.m00, m.m01, m.m10, m.m11, m.m20, m.m21);
144144
cairo_pattern_set_matrix(pttn, &cPttnMatrix);
145145
cairo_set_source(_Native_context.get(), pttn);
@@ -188,7 +188,7 @@ void display_surface::_Render_to_native_surface() {
188188
cairo_pattern_set_extend(pttn, _Extend_to_cairo_extend_t(props.wrap_mode()));
189189
cairo_pattern_set_filter(pttn, _Filter_to_cairo_filter_t(props.filter()));
190190
cairo_matrix_t cPttnMatrix;
191-
const auto& m = props.matrix();
191+
const auto& m = props.brush_matrix();
192192
cairo_matrix_init(&cPttnMatrix, m.m00, m.m01, m.m10, m.m11, m.m20, m.m21);
193193
cairo_pattern_set_matrix(pttn, &cPttnMatrix);
194194
cairo_set_source(_Native_context.get(), pttn);

N3888_RefImpl/src/image_surface.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ image_surface::image_surface(string f, experimental::io2d::format fmt, image_fil
235235
memcpy(mapData + (i * mapStride), pixelData.get() + i * dataStride, mapStride);
236236
}
237237
} break;
238-
case std::experimental::io2d::v1::format::xrgb32:
238+
case std::experimental::io2d::v1::format::rgb24:
239239
{
240240
for (int i = 0; i < h; i++) {
241241
memcpy(mapData + (i * mapStride), pixelData.get() + i * dataStride, mapStride);
@@ -326,7 +326,7 @@ image_surface::image_surface(string f, experimental::io2d::format fmt, image_fil
326326
memcpy(mapData + (i * mapStride), pixelData.get() + i * pitch, mapStride);
327327
}
328328
} break;
329-
case std::experimental::io2d::v1::format::xrgb32:
329+
case std::experimental::io2d::v1::format::rgb24:
330330
{
331331
for (int i = 0; i < h; i++) {
332332
memcpy(mapData + (i * mapStride), pixelData.get() + i * pitch, mapStride);
@@ -416,7 +416,7 @@ void image_surface::save(string f, image_file_format idf) {
416416
memcpy(sfcData.get() + (i * sfcStride), mapData + (i * sfcStride), sfcStride);
417417
}
418418
} break;
419-
case std::experimental::io2d::v1::format::xrgb32:
419+
case std::experimental::io2d::v1::format::rgb24:
420420
{
421421
pngImg.format = PNG_FORMAT_BGRA; // We'll write the alpha as-is in case someone was storing some data in them.
422422
for (int i = 0; i < h; i++) {
@@ -570,7 +570,7 @@ void image_surface::save(string f, image_file_format idf) {
570570
memcpy(sfcData.get() + (i * sfcStride), mapData + (i * sfcStride), sfcStride);
571571
}
572572
} break;
573-
case std::experimental::io2d::v1::format::xrgb32:
573+
case std::experimental::io2d::v1::format::rgb24:
574574
{
575575
for (int i = 0; i < h; i++) {
576576
memcpy(sfcData.get() + (i * sfcStride), mapData + (i * sfcStride), sfcStride);

N3888_RefImpl/src/surface.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ namespace {
188188
auto p = b.native_handle();
189189
cairo_pattern_set_extend(b.native_handle(), _Extend_to_cairo_extend_t(props.wrap_mode()));
190190
cairo_pattern_set_filter(p, _Filter_to_cairo_filter_t(props.filter()));
191-
const auto& m = props.matrix();
191+
const auto& m = props.brush_matrix();
192192
cairo_matrix_t cm{ m.m00, m.m01, m.m10, m.m11, m.m20, m.m21 };
193193
cairo_pattern_set_matrix(p, &cm);
194194
cairo_set_fill_rule(context, _Fill_rule_to_cairo_fill_rule_t(props.fill_rule()));
@@ -207,7 +207,7 @@ namespace {
207207
auto p = b.native_handle();
208208
cairo_pattern_set_extend(b.native_handle(), _Extend_to_cairo_extend_t(props.wrap_mode()));
209209
cairo_pattern_set_filter(p, _Filter_to_cairo_filter_t(props.filter()));
210-
const auto& m = props.matrix();
210+
const auto& m = props.mask_matrix();
211211
cairo_matrix_t cm{ m.m00, m.m01, m.m10, m.m11, m.m20, m.m21 };
212212
cairo_pattern_set_matrix(p, &cm);
213213
}

N3888_RefImpl/src/xio2d_impl.h

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1222,8 +1222,6 @@ namespace std::experimental::io2d {
12221222
return CAIRO_LINE_JOIN_ROUND;
12231223
case ::std::experimental::io2d::line_join::bevel:
12241224
return CAIRO_LINE_JOIN_BEVEL;
1225-
case ::std::experimental::io2d::line_join::miter_or_bevel:
1226-
return CAIRO_LINE_JOIN_MITER;
12271225
default:
12281226
throw ::std::runtime_error("Unknown line_join value.");
12291227
}
@@ -1232,7 +1230,7 @@ namespace std::experimental::io2d {
12321230
inline ::std::experimental::io2d::line_join _Cairo_line_join_t_to_line_join(cairo_line_join_t clj) {
12331231
switch (clj) {
12341232
case CAIRO_LINE_JOIN_MITER:
1235-
return ::std::experimental::io2d::line_join::miter_or_bevel;
1233+
return ::std::experimental::io2d::line_join::miter;
12361234
case CAIRO_LINE_JOIN_ROUND:
12371235
return ::std::experimental::io2d::line_join::round;
12381236
case CAIRO_LINE_JOIN_BEVEL:
@@ -1380,7 +1378,7 @@ namespace std::experimental::io2d {
13801378
return CAIRO_FORMAT_INVALID;
13811379
case ::std::experimental::io2d::format::argb32:
13821380
return CAIRO_FORMAT_ARGB32;
1383-
case ::std::experimental::io2d::format::xrgb32:
1381+
case ::std::experimental::io2d::format::rgb24:
13841382
return CAIRO_FORMAT_RGB24;
13851383
case ::std::experimental::io2d::format::a8:
13861384
return CAIRO_FORMAT_A8;
@@ -1400,7 +1398,7 @@ namespace std::experimental::io2d {
14001398
case CAIRO_FORMAT_ARGB32:
14011399
return ::std::experimental::io2d::format::argb32;
14021400
case CAIRO_FORMAT_RGB24:
1403-
return ::std::experimental::io2d::format::xrgb32;
1401+
return ::std::experimental::io2d::format::rgb24;
14041402
case CAIRO_FORMAT_A8:
14051403
return ::std::experimental::io2d::format::a8;
14061404
case CAIRO_FORMAT_RGB16_565:
@@ -2356,7 +2354,7 @@ namespace std::experimental::io2d {
23562354
_Fill_rule = fr;
23572355
}
23582356

2359-
inline constexpr void brush_props::matrix(const matrix_2d& m) noexcept {
2357+
inline constexpr void brush_props::brush_matrix(const matrix_2d& m) noexcept {
23602358
_Matrix = m;
23612359
}
23622360

@@ -2372,7 +2370,7 @@ namespace std::experimental::io2d {
23722370
return _Fill_rule;
23732371
}
23742372

2375-
inline constexpr matrix_2d brush_props::matrix() const noexcept {
2373+
inline constexpr matrix_2d brush_props::brush_matrix() const noexcept {
23762374
return _Matrix;
23772375
}
23782376

@@ -2409,7 +2407,7 @@ namespace std::experimental::io2d {
24092407
_Clip = pg;
24102408
}
24112409

2412-
inline void clip_props::fill_rule(experimental::io2d::fill_rule fr) {
2410+
inline void clip_props::fill_rule(experimental::io2d::fill_rule fr) noexcept{
24132411
_Fill_rule = fr;
24142412
}
24152413

@@ -2471,7 +2469,7 @@ namespace std::experimental::io2d {
24712469
inline constexpr void mask_props::filter(experimental::io2d::filter fi) noexcept {
24722470
_Filter = fi;
24732471
}
2474-
inline constexpr void mask_props::matrix(const matrix_2d& m) noexcept {
2472+
inline constexpr void mask_props::mask_matrix(const matrix_2d& m) noexcept {
24752473
_Matrix = m;
24762474
}
24772475

@@ -2481,7 +2479,7 @@ namespace std::experimental::io2d {
24812479
inline constexpr experimental::io2d::filter mask_props::filter() const noexcept {
24822480
return _Filter;
24832481
}
2484-
inline constexpr matrix_2d mask_props::matrix() const noexcept {
2482+
inline constexpr matrix_2d mask_props::mask_matrix() const noexcept {
24852483
return _Matrix;
24862484
}
24872485

N3888_RefImpl/src/xsurfaces.h

Lines changed: 26 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,7 @@ namespace std::experimental::io2d {
3434
enum class line_join {
3535
miter,
3636
round,
37-
bevel,
38-
miter_or_bevel
37+
bevel
3938
};
4039

4140
enum class compositing_op {
@@ -73,7 +72,7 @@ namespace std::experimental::io2d {
7372
enum class format {
7473
invalid,
7574
argb32,
76-
xrgb32,
75+
rgb24,
7776
a8,
7877
rgb16_565,
7978
rgb30
@@ -106,13 +105,10 @@ namespace std::experimental::io2d {
106105
compositing_op _Compositing = compositing_op::over;
107106
public:
108107
constexpr render_props() noexcept;
109-
constexpr explicit render_props(antialias a, const matrix_2d& m = matrix_2d{},
110-
compositing_op co = compositing_op::over) noexcept;
111-
108+
constexpr explicit render_props(antialias a, const matrix_2d& m = matrix_2d{}, compositing_op co = compositing_op::over) noexcept;
112109
constexpr void antialiasing(antialias a) noexcept;
113110
constexpr void compositing(compositing_op co) noexcept;
114111
constexpr void surface_matrix(const matrix_2d& m) noexcept;
115-
116112
constexpr antialias antialiasing() const noexcept;
117113
constexpr compositing_op compositing() const noexcept;
118114
constexpr matrix_2d surface_matrix() const noexcept;
@@ -125,47 +121,36 @@ namespace std::experimental::io2d {
125121
matrix_2d _Matrix;
126122

127123
public:
124+
// suprlus to paper
128125
constexpr brush_props() noexcept;
129-
constexpr brush_props(experimental::io2d::wrap_mode w,
130-
experimental::io2d::filter fi = experimental::io2d::filter::bilinear,
131-
experimental::io2d::fill_rule fr = experimental::io2d::fill_rule::winding,
132-
matrix_2d m = matrix_2d{}) noexcept;
133-
134-
constexpr void filter(experimental::io2d::filter fi) noexcept;
135-
constexpr void wrap_mode(experimental::io2d::wrap_mode w) noexcept;
136-
constexpr void fill_rule(experimental::io2d::fill_rule fr) noexcept;
137-
constexpr void matrix(const matrix_2d& m) noexcept;
138126

139-
constexpr experimental::io2d::filter filter() const noexcept;
140-
constexpr experimental::io2d::wrap_mode wrap_mode() const noexcept;
141-
constexpr experimental::io2d::fill_rule fill_rule() const noexcept;
142-
constexpr matrix_2d matrix() const noexcept;
127+
constexpr brush_props(io2d::wrap_mode w = io2d::wrap_mode::none, io2d::filter fi = io2d::filter::good, io2d::fill_rule fr = io2d::fill_rule::winding, matrix_2d m = matrix_2d{}) noexcept;
128+
constexpr void filter(io2d::filter fi) noexcept;
129+
constexpr void wrap_mode(io2d::wrap_mode w) noexcept;
130+
constexpr void fill_rule(io2d::fill_rule fr) noexcept;
131+
constexpr void brush_matrix(const matrix_2d& m) noexcept;
132+
constexpr io2d::filter filter() const noexcept;
133+
constexpr io2d::wrap_mode wrap_mode() const noexcept;
134+
constexpr io2d::fill_rule fill_rule() const noexcept;
135+
constexpr matrix_2d brush_matrix() const noexcept;
143136
};
144137

145138
class clip_props {
146139
interpreted_path _Clip;
147140
experimental::io2d::fill_rule _Fill_rule = experimental::io2d::fill_rule::winding;
148141
public:
142+
// suprlus to paper
143+
explicit clip_props(const bounding_box& r, experimental::io2d::fill_rule fr = experimental::io2d::fill_rule::winding);
144+
149145
clip_props() noexcept = default;
150146
template <class Allocator>
151-
explicit clip_props(const path_builder<Allocator> &pf,
152-
experimental::io2d::fill_rule fr = experimental::io2d::fill_rule::winding);
153-
154-
explicit clip_props(const interpreted_path& pg,
155-
experimental::io2d::fill_rule fr = experimental::io2d::fill_rule::winding) noexcept;
156-
157-
explicit clip_props(const bounding_box& r,
158-
experimental::io2d::fill_rule fr = experimental::io2d::fill_rule::winding);
159-
147+
explicit clip_props(const path_builder<Allocator>& pb, experimental::io2d::fill_rule fr = experimental::io2d::fill_rule::winding);
148+
explicit clip_props(const interpreted_path& pg, experimental::io2d::fill_rule fr = experimental::io2d::fill_rule::winding) noexcept;
160149
template <class Allocator>
161-
void clip(const path_builder<Allocator>& pf);
162-
150+
void clip(const path_builder<Allocator>& pb);
163151
void clip(const interpreted_path& pg) noexcept;
164-
165-
void fill_rule(experimental::io2d::fill_rule fr);
166-
152+
void fill_rule(experimental::io2d::fill_rule fr) noexcept;
167153
interpreted_path clip() const noexcept;
168-
169154
experimental::io2d::fill_rule fill_rule() const noexcept;
170155
};
171156

@@ -177,20 +162,16 @@ namespace std::experimental::io2d {
177162
//optional<dashes> _Dashes;
178163
public:
179164
constexpr stroke_props() noexcept;
180-
constexpr explicit stroke_props(float w,
181-
experimental::io2d::line_cap lc = experimental::io2d::line_cap::none,
182-
experimental::io2d::line_join lj = experimental::io2d::line_join::miter,
183-
float ml = 10.0F) noexcept;
184-
165+
constexpr explicit stroke_props(float w, io2d::line_cap lc = io2d::line_cap::none, io2d::line_join lj = io2d::line_join::miter, float ml = 10.0f) noexcept;
185166
constexpr void line_width(float w) noexcept;
186167
constexpr void line_cap(experimental::io2d::line_cap lc) noexcept;
187168
constexpr void line_join(experimental::io2d::line_join lj) noexcept;
188169
constexpr void miter_limit(float ml) noexcept;
189-
190170
constexpr float line_width() const noexcept;
191171
constexpr experimental::io2d::line_cap line_cap() const noexcept;
192172
constexpr experimental::io2d::line_join line_join() const noexcept;
193173
constexpr float miter_limit() const noexcept;
174+
constexpr float max_miter_limit() const noexcept;
194175
};
195176

196177
class mask_props {
@@ -199,21 +180,19 @@ namespace std::experimental::io2d {
199180
matrix_2d _Matrix = matrix_2d{};
200181

201182
public:
202-
constexpr mask_props(experimental::io2d::wrap_mode w = experimental::io2d::wrap_mode::repeat,
203-
experimental::io2d::filter fi = experimental::io2d::filter::good,
204-
matrix_2d m = matrix_2d{}) noexcept;
183+
// suprlus to paper
205184
constexpr mask_props(const mask_props&) noexcept = default;
206185
constexpr mask_props& operator=(const mask_props&) noexcept = default;
207186
mask_props(mask_props&&) noexcept = default;
208187
mask_props& operator=(mask_props&&) noexcept = default;
209188

189+
constexpr mask_props(experimental::io2d::wrap_mode w = experimental::io2d::wrap_mode::repeat, experimental::io2d::filter fi = experimental::io2d::filter::good, matrix_2d m = matrix_2d{}) noexcept;
210190
constexpr void wrap_mode(experimental::io2d::wrap_mode w) noexcept;
211191
constexpr void filter(experimental::io2d::filter fi) noexcept;
212-
constexpr void matrix(const matrix_2d& m) noexcept;
213-
192+
constexpr void mask_matrix(const matrix_2d& m) noexcept;
214193
constexpr experimental::io2d::wrap_mode wrap_mode() const noexcept;
215194
constexpr experimental::io2d::filter filter() const noexcept;
216-
constexpr matrix_2d matrix() const noexcept;
195+
constexpr matrix_2d mask_matrix() const noexcept;
217196
};
218197

219198
struct _Surface_native_handles {

0 commit comments

Comments
 (0)