On Mon, Jul 25, 2011 at 3:18 AM, Joonyoung Shim <dofmind at gmail.com> wrote:
> 2011/7/22 Jesse Barnes <jbarnes at virtuousgeek.org>:
>> On Thu, 21 Jul 2011 19:30:00 +0900
>> Joonyoung Shim <dofmind at gmail.com> wrote:
>>
>>> Hi,
>>>
>>> simple questions :)
>>>
>>> 2011/6/21 Jesse Barnes <jbarnes at virtuousgeek.org>:
>>> > Planes are a bit like half-CRTCs. ?They have a location and fb, but
>>> > don't drive outputs directly. ?Add support for handling them to the core
>>> > KMS code.
>>> >
>>> > Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
>>> > ---
>>> > ?drivers/gpu/drm/drm_crtc.c | ?235 
>>> > +++++++++++++++++++++++++++++++++++++++++++-
>>> > ?drivers/gpu/drm/drm_drv.c ?| ? ?3 +
>>> > ?include/drm/drm.h ? ? ? ? ?| ? ?3 +
>>> > ?include/drm/drm_crtc.h ? ? | ? 73 ++++++++++++++-
>>> > ?include/drm/drm_mode.h ? ? | ? 35 +++++++
>>> > ?5 files changed, 346 insertions(+), 3 deletions(-)
>>> >
>>>
>>> snip
>>>
>>> > diff --git a/include/drm/drm_mode.h b/include/drm/drm_mode.h
>>> > index c4961ea..fa6d348 100644
>>> > --- a/include/drm/drm_mode.h
>>> > +++ b/include/drm/drm_mode.h
>>> > @@ -120,6 +120,41 @@ struct drm_mode_crtc {
>>> > ? ? ? ?struct drm_mode_modeinfo mode;
>>> > ?};
>>> >
>>> > +/* Planes blend with or override other bits on the CRTC */
>>> > +struct drm_mode_set_plane {
>>> > + ? ? ? __u32 plane_id;
>>> > + ? ? ? __u32 crtc_id;
>>> > + ? ? ? __u32 fb_id; /* fb object contains surface format type */
>>> > +
>>> > + ? ? ? /* Signed dest location allows it to be partially off screen */
>>> > + ? ? ? __s32 crtc_x, crtc_y;
>>>
>>> Is this location offset from base(0, 0) of fb for plane, or from base
>>> of crtc(mode)?
>>
>> This is the offset on the crtc specifically (which could be displaying
>> a nonzero offset of a given fb).
>>
>
> Then if i want to use the specific area of a given fb for overlay, how
> can we know the offset on a given fb?
> In other words, can we use the specific offset from fb to origin(base
> pointer) of plane? or can we use each overlays from each specific
> offsets of one fb?

The x,y parameters give the position within the fb, the crtc_x,crtc_y
parameters give the position within the crtc (screen)..

So if you had full-screen video spanning two 1280x1024 displays, where
the video was 1080p.  Say the video was nearly but not completely
full-screen (say, 5 pixel border all around.. just to pick some #'s):

display one:
  plane:  x,y=0,0, crtc_x,crtc_y=5,5, crtc_w=1275, crtc_h=1014

display two:  (to right of display one)
  plane: x,y=960,0, crtc_x,crtc_y=0,5, crtc_w=1275, crtc_h=1014

(or at least that is my understanding..)

BR,
-R

> Thanks.
>
> --
> - Joonyoung Shim
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>

Reply via email to