[PATCH 02/10] libweston: Add initial output API for windowed outputs configuration
Armin Krezović
krezovic.armin at gmail.com
Sun Aug 14 15:45:04 UTC 2016
On 12.08.2016 18:28, Pekka Paalanen wrote:
> On Thu, 11 Aug 2016 17:33:57 +0200
> Armin Krezović <krezovic.armin at gmail.com> wrote:
>
>> This adds new plugin-specific API for configuring outputs
>> on "windowed" backends, such as X11, wayland/non-fullscreen
>> and even headless (although, it doesn't have any windows,
>> its configuration is very similar). It can be used from
>> compositors to configure pending outputs and should be used
>> with previously added weston_output_set_{scale,transform}
>> to properly configure an output before enabling it.
>>
>> It also supports creating additional outputs on the mentioned
>> backends.
>>
>> Signed-off-by: Armin Krezović <krezovic.armin at gmail.com>
>> ---
>> Makefile.am | 1 +
>> libweston/output-api.h | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++
>
> Hi,
>
> the file name should probably be windowed-output-api.h.
>
>> 2 files changed, 89 insertions(+)
>> create mode 100644 libweston/output-api.h
>>
>> diff --git a/Makefile.am b/Makefile.am
>> index 32627f5..038e4da 100644
>> --- a/Makefile.am
>> +++ b/Makefile.am
>> @@ -245,6 +245,7 @@ libwestoninclude_HEADERS = \
>> libweston/compositor-rdp.h \
>> libweston/compositor-wayland.h \
>> libweston/compositor-x11.h \
>> + libweston/output-api.h \
>> libweston/plugin-registry.h \
>> libweston/timeline-object.h \
>> shared/matrix.h \
>> diff --git a/libweston/output-api.h b/libweston/output-api.h
>> new file mode 100644
>> index 0000000..ef33587
>> --- /dev/null
>> +++ b/libweston/output-api.h
>> @@ -0,0 +1,88 @@
>> +/*
>> + * Copyright © 2016 Collabora, Ltd.
>
> I think the copyright is not quite right, is it? :-)
> I wouldn't consider the boilerplate in this file copyrightable.
>
Hi,
I'm not really familiar with this stuff. It was copy-pasted from
somewhere to follow the convention used in weston. I ask of you
to fix this properly when you get around to commiting the series.
Everything else has been taken care of.
Cheers.
>> + *
>> + * Permission is hereby granted, free of charge, to any person obtaining
>> + * a copy of this software and associated documentation files (the
>> + * "Software"), to deal in the Software without restriction, including
>> + * without limitation the rights to use, copy, modify, merge, publish,
>> + * distribute, sublicense, and/or sell copies of the Software, and to
>> + * permit persons to whom the Software is furnished to do so, subject to
>> + * the following conditions:
>> + *
>> + * The above copyright notice and this permission notice (including the
>> + * next paragraph) shall be included in all copies or substantial
>> + * portions of the Software.
>> + *
>> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
>> + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
>> + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
>> + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
>> + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
>> + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
>> + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
>> + * SOFTWARE.
>> + */
>> +
>> +#ifndef WESTON_OUTPUT_API_H
>> +#define WESTON_OUTPUT_API_H
>> +
>> +#ifdef __cplusplus
>> +extern "C" {
>> +#endif
>> +
>> +#include "plugin-registry.h"
>> +
>> +struct weston_compositor;
>> +struct weston_output;
>> +
>> +#define WESTON_WINDOWED_OUTPUT_API_NAME "weston_windowed_output_api_v1"
>> +
>> +struct weston_windowed_output_api {
>> + /** Configure an output with given width and height.
>> + *
>> + * \param output An output to be configured.
>> + * \param width Desired width of the output.
>> + * \param height Desired height of the output.
>> + *
>> + * This configures a windowed output with desired width and
>> + * height. The backend decides what should be done and applies
>> + * the desired configuration. After using this function and
>> + * generic weston_output_set_{scale,transform}, a windowed
>> + * output should be in a state where weston_output_enable()
>> + * can be run.
>
> Return values?
>
>> + */
>> + int (*output_configure)(struct weston_output *output,
>> + int width, int height);
>
> What Quentin said. We use the term "configure" already too much.
> set_size()?
>
>> +
>> + /** Create a new windowed output.
>> + *
>> + * \param compositor The compositor instance.
>> + * \param name Desired name for a new output.
>> + *
>> + * This creates a new output in the backend using this API.
>> + * After this function is ran, the created output should be
>> + * ready for configuration using the output_configure() and
>> + * weston_output_set_{scale,transform}().
>> + *
>> + * An optional name can be assigned to it, so it can be used
>> + * by compositor to configure it. It can be NULL.
>
> Return values?
>
> Could we require the name to be set easily? I don't like unnamed
> outputs much. Or was there a name generated if this is NULL?
>
>> + */
>> + int (*output_create)(struct weston_compositor *compositor,
>> + const char *name);
>> +};
>> +
>> +static inline const struct weston_windowed_output_api *
>> +weston_windowed_output_get_api(struct weston_compositor *compositor)
>> +{
>> + const void *api;
>> + api = weston_plugin_api_get(compositor, WESTON_WINDOWED_OUTPUT_API_NAME,
>> + sizeof(struct weston_windowed_output_api));
>> +
>> + return (const struct weston_windowed_output_api *)api;
>> +}
>> +
>> +#ifdef __cplusplus
>> +}
>> +#endif
>> +
>> +#endif /* WESTON_OUTPUT_API_H */
>
> Just a few details to improve, otherwise good.
>
>
> Thanks,
> pq
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 855 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20160814/47a79429/attachment.sig>
More information about the wayland-devel
mailing list