[PATCH v4 09/21] modetest: Allow specifying plane position

Ville Syrjälä ville.syrjala at linux.intel.com
Thu Mar 28 03:44:50 PDT 2013


On Thu, Mar 28, 2013 at 01:16:09AM +0100, Laurent Pinchart wrote:
> Hi Ville,
> 
> On Wednesday 27 March 2013 19:15:31 Ville Syrjälä wrote:
> > On Wed, Mar 27, 2013 at 05:57:20PM +0200, Ville Syrjälä wrote:
> > > On Tue, Mar 19, 2013 at 03:55:50PM +0100, Laurent Pinchart wrote:
> > > > Extend the -P option to allow specifying the plane x and y offsets. The
> > > > position is optional, if not specified the plane will be positioned at
> > > > the center of the screen as before.
> > > > 
> > > > Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> > > > ---
> > > > 
> > > >  tests/modetest/modetest.c | 72 ++++++++++++++++++++++++++++++----------
> > > >  1 file changed, 57 insertions(+), 15 deletions(-)
> > > > 
> > > > diff --git a/tests/modetest/modetest.c b/tests/modetest/modetest.c
> > > > index 7153a40..f95efe6 100644
> > > > --- a/tests/modetest/modetest.c
> > > > +++ b/tests/modetest/modetest.c
> > > > @@ -645,6 +645,7 @@ struct connector_arg {
> > > > 
> > > >  struct plane_arg {
> > > >  
> > > >  	uint32_t con_id;  /* the id of connector to bind to */
> > > > 
> > > > +	uint32_t x, y;
> > > 
> > > I'd like the coordinates to allow negative values too.
> > 
> > Tested it and it actually works w/ negative values thanks to the way
> > strtoul() works :) The only real obstacle is the magic '-1' handling.
> > I guess you should just give up on magic values and add some flag to
> > indicate whether the user provided the coords or not.
> > 
> > Also I must say that I don't like the syntax you used for specifying the
> > coords. '(' and ')' need to be escaped or the shell eats them.
> 
> You're not the first one to complain, I don't mind changing the syntax 
> (although escaping is not mandatory, you can just enclose the whole argument 
> in quotes).
> 
> > I've been using the x11 -geometry syntax whenever I have to deal with the
> > x/y/w/h combination. It's a reasonably well known syntax and doesn't have
> > these shell issues. Maybe you could use it here as well.
> 
> The issue with the geometry syntax is that you can't put the top-left corner 
> at negative coordinates, as -XOFF places the right edge of the plane XOFF 
> pixels from the right edge of the screen, and similarly for -YOFF. Should we 
> deviate from that spec and consider -XOFF to mean XOFF pixels on the left side 
> of the left edge (outside of the screen) ?

I forgot that there's this kind of magic change of origin in the
specification. I guess it's been too long since I've used negative
geometry coordinates under X.

I've just been using it so that the origin is always the top left
corner. That's how I chose to interpret things in my
drm_rect_debug_print() function for example. But since it's a bit
contrary to the X geometry spec, maybe it's not the best syntax
either. If anyone has a better idea in mind, I'm open to suggestions.

-- 
Ville Syrjälä
Intel OTC


More information about the dri-devel mailing list