Skip to content

Commit 3cf7c0c

Browse files
committed
Remove some unnecessary wrappers
`struct video_format` should primarily be about pixel/color conversion. More "advanced" pixel operations should be done directly via operators in `struct video_codec`
1 parent 11b4f1a commit 3cf7c0c

File tree

1 file changed

+2
-94
lines changed

1 file changed

+2
-94
lines changed

kos/include/libvideo/codec/format.h

Lines changed: 2 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -81,48 +81,6 @@ extern __ATTR_PURE __ATTR_WUNUSED __ATTR_NONNULL((1, 2)) void
8181
video_format_setcolor(struct video_format const *__restrict __self,
8282
__byte_t *__restrict __line,
8383
video_coord_t __x, video_color_t __color);
84-
85-
/* Copy a rect of pixels. When src/dst overlap, results are weak-undefined.
86-
* @assume(IS_ALIGNED(__dst_line, __self->vf_codec->vc_align));
87-
* @assume(IS_ALIGNED(__src_line, __self->vf_codec->vc_align));
88-
* @assume(IS_ALIGNED(__dst_stride, __self->vf_codec->vc_align));
89-
* @assume(IS_ALIGNED(__src_stride, __self->vf_codec->vc_align));
90-
* @assume(__size_x > 0);
91-
* @assume(__size_y > 0); */
92-
extern __ATTR_NONNULL((1, 2, 5)) void
93-
video_format_rectcopy(struct video_format const *__restrict __self,
94-
__byte_t *__restrict __dst_line, video_coord_t __dst_x, __size_t __dst_stride,
95-
__byte_t const *__restrict __src_line, video_coord_t __src_x, __size_t __src_stride,
96-
video_dim_t __size_x, video_dim_t __size_y);
97-
98-
/* Fill `num_pixels' neighboring pixels horizontally.
99-
* The caller must ensure that all coords are in-bounds.
100-
* @assume(IS_ALIGNED(__line, __self->vf_codec->vc_align));
101-
* @assume(__num_pixels > 0); */
102-
extern __ATTR_NONNULL((1, 2)) void
103-
video_format_linefill(struct video_format const *__restrict __self,
104-
__byte_t *__restrict __line, video_coord_t __x,
105-
video_pixel_t __pixel, video_dim_t __num_pixels);
106-
107-
/* Fill a vertical line of pixels.
108-
* @assume(IS_ALIGNED(__line, __self->vf_codec->vc_align));
109-
* @assume(IS_ALIGNED(__stride, __self->vf_codec->vc_align));
110-
* @assume(__num_pixels > 0); */
111-
extern __ATTR_NONNULL((1, 2)) void
112-
video_format_vertfill(struct video_format const *__restrict __self,
113-
__byte_t *__restrict __line, video_coord_t __x, __size_t __stride,
114-
video_pixel_t __pixel, video_dim_t __num_pixels);
115-
116-
117-
/* Fill a rect of pixels.
118-
* @assume(__size_x > 0);
119-
* @assume(__size_y > 0);
120-
* @assume(IS_ALIGNED(__line, __self->vf_codec->vc_align));
121-
* @assume(IS_ALIGNED(__stride, __self->vf_codec->vc_align)); */
122-
extern __ATTR_NONNULL((1, 2)) void
123-
video_format_rectfill(struct video_format const *__restrict __self,
124-
__byte_t *__restrict __line, video_coord_t __x, __size_t __stride,
125-
video_pixel_t __pixel, video_dim_t __size_x, video_dim_t __size_y);
12684
#else /* __INTELLISENSE__ */
12785
#define video_format_hasalpha(self) \
12886
(((self)->vf_codec->vc_specs.vcs_amask != 0) || \
@@ -133,14 +91,6 @@ video_format_rectfill(struct video_format const *__restrict __self,
13391
#define video_format_color2pixel(self, color) (*(self)->vf_codec->vc_color2pixel)(self, color)
13492
#define video_format_getcolor(self, line, x) video_format_pixel2color(self, video_format_getpixel(self, line, x))
13593
#define video_format_setcolor(self, line, x, color) video_format_setpixel(self, line, x, video_format_color2pixel(self, color))
136-
#define video_format_rectcopy(self, dst_line, dst_x, dst_stride, src_line, src_x, src_stride, size_x, size_y) \
137-
(*(self)->vf_codec->vc_rectcopy)(dst_line, dst_x, dst_stride, src_line, src_x, src_stride, size_x, size_y)
138-
#define video_format_linefill(self, dst_line, x, pixel, num_pixels) \
139-
(*(self)->vf_codec->vc_linefill)(dst_line, x, pixel, num_pixels)
140-
#define video_format_vertfill(self, dst_line, x, stride, pixel, num_pixels) \
141-
(*(self)->vf_codec->vc_vertfill)(dst_line, x, stride, pixel, num_pixels)
142-
#define video_format_rectfill(self, dst_line, x, stride, pixel, size_x, size_y) \
143-
(*(self)->vf_codec->vc_rectfill)(dst_line, x, stride, pixel, size_x, size_y)
14494
#endif /* !__INTELLISENSE__ */
14595

14696
struct video_format {
@@ -160,48 +110,6 @@ struct video_format {
160110
/* Convert between color and pixel values. */
161111
__CXX_CLASSMEMBER video_color_t LIBVIDEO_CODEC_CC pixel2color(video_pixel_t __pixel) const { return video_format_pixel2color(this, __pixel); }
162112
__CXX_CLASSMEMBER video_pixel_t LIBVIDEO_CODEC_CC color2pixel(video_color_t __color) const { return video_format_color2pixel(this, __color); }
163-
164-
/* Copy a rect of pixels. When src/dst overlap, results are weak-undefined.
165-
* @assume(IS_ALIGNED(__dst_line, vf_codec->vc_align));
166-
* @assume(IS_ALIGNED(__src_line, vf_codec->vc_align));
167-
* @assume(IS_ALIGNED(__dst_stride, vf_codec->vc_align));
168-
* @assume(IS_ALIGNED(__src_stride, vf_codec->vc_align));
169-
* @assume(__size_x > 0);
170-
* @assume(__size_y > 0); */
171-
__CXX_CLASSMEMBER void LIBVIDEO_CODEC_CC rectcopy(__byte_t *__restrict __dst_line, video_coord_t __dst_x, __size_t __dst_stride,
172-
__byte_t const *__restrict __src_line, video_coord_t __src_x, __size_t __src_stride,
173-
video_dim_t __size_x, video_dim_t __size_y) const {
174-
video_format_rectcopy(this, __dst_line, __dst_x, __dst_stride, __src_line, __src_x, __src_stride, __size_x, __size_y);
175-
}
176-
177-
/* Fill `num_pixels' neighboring pixels horizontally.
178-
* The caller must ensure that all coords are in-bounds.
179-
* @assume(IS_ALIGNED(__line, vf_codec->vc_align));
180-
* @assume(__num_pixels > 0); */
181-
__CXX_CLASSMEMBER void LIBVIDEO_CODEC_CC linefill(__byte_t *__restrict __line, video_coord_t __x,
182-
video_pixel_t __pixel, video_dim_t __num_pixels) const {
183-
video_format_linefill(this, __line, __x, __pixel, __num_pixels);
184-
}
185-
186-
/* Fill a vertical line of pixels.
187-
* @assume(IS_ALIGNED(__line, vf_codec->vc_align));
188-
* @assume(IS_ALIGNED(__stride, vf_codec->vc_align));
189-
* @assume(__num_pixels > 0); */
190-
__CXX_CLASSMEMBER void LIBVIDEO_CODEC_CC vertfill(__byte_t *__restrict __line, video_coord_t __x, __size_t __stride,
191-
video_pixel_t __pixel, video_dim_t __num_pixels) const {
192-
video_format_vertfill(this, __line, __x, __stride, __pixel, __num_pixels);
193-
}
194-
195-
/* Fill a rect of pixels.
196-
* @assume(__size_x > 0);
197-
* @assume(__size_y > 0);
198-
* @assume(IS_ALIGNED(__line, vf_codec->vc_align));
199-
* @assume(IS_ALIGNED(__stride, vf_codec->vc_align)); */
200-
__CXX_CLASSMEMBER void LIBVIDEO_CODEC_CC rectfill(__byte_t *__restrict __line, video_coord_t __x, __size_t __stride,
201-
video_pixel_t __pixel, video_dim_t __size_x, video_dim_t __size_y) const {
202-
video_format_rectfill(this, __line, __x, __stride, __pixel, __size_x, __size_y);
203-
}
204-
205113
#endif /* __cplusplus */
206114
};
207115

@@ -219,8 +127,8 @@ struct video_converter;
219127
struct video_converter {
220128
/* [1..1] Map pixel from `vcv_from' into the format used by `vcv_to'.
221129
* Same as the following (but faster in many cases):
222-
* >> video_color_t color = vcv_from.pixel2color(__from_pixel);
223-
* >> video_pixel_t to_pixel = vcv_to.color2pixel(color); */
130+
* >> video_color_t color = video_format_pixel2color(&vcv_from, __from_pixel);
131+
* >> video_pixel_t to_pixel = video_format_color2pixel(&vcv_to, color); */
224132
__ATTR_PURE_T __ATTR_WUNUSED_T __ATTR_IN_T(1) video_pixel_t
225133
(LIBVIDEO_CODEC_CC *vcv_mappixel)(struct video_converter const *__restrict __self,
226134
video_pixel_t __from_pixel);

0 commit comments

Comments
 (0)