On Mon, Jul 25, 2011 at 3:18 AM, Joonyoung Shim dofmind@gmail.com wrote:
2011/7/22 Jesse Barnes jbarnes@virtuousgeek.org:
On Thu, 21 Jul 2011 19:30:00 +0900 Joonyoung Shim dofmind@gmail.com wrote:
Hi,
simple questions :)
2011/6/21 Jesse Barnes jbarnes@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@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@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel