Hello,

I have been studying the DFB API and examining the source code to try
and determine what layer functionality to implement in a driver that we
are going to develop for some CE hardware.  I am uncertain about the
intent of the ability for layers to support regions and have some
questions about them and related topics.

What does it mean for a layer if it supports one region vs. multiple
regions?

How are regions (not clip regions) intended to be used and hardware
accelerated?  Both by the DFB API user and in the driver.

What impact does the driver having layer support for regions have on the
DFB API user?

Must the area covered by all of a layer's regions be non-overlapping?

Regarding support for windows, is their usage related to the region
support provided by a layer?

What does it mean for the usage of a layer if a driver has a layer that
supports windows (cap bit DLCAPS_WINDOWS is set)?  That buffer mode
DLBM_WINDOWS can be used?  Anything else?

Likewise if the layer does not support windows (the cap bit
DLCAPS_WINDOWS is not set)?  That buffer mode DLBM_WINDOWS cannot be
used?  Can the IDirectFBDisplayLayer::CreateWindow function still be
used (the windows are then just not-accelerated)?  Anything else?

In response to what DFB API usage are individual layers intended to be
enabled and their surfaces made visible by the driver?  I expect not
until after an associated surface has been flipped or a video provider
playback has been initiated on the associated surface.  Correct?

What is the intended DFB API usage to disable and hide a layer that was
previously visible (besides changing the opacity to zero if it is
supported)?  There doesn't appear to by any layer functionality to do
this (aside from changing the opacity to zero if it is supported), so
the only way that I am aware of doing this is to release the all
outstanding references to the layer that were obtained.

Regarding layer IDs, it appears the DFB API user receives sequential
layer IDs (literally 0 - 31) in the DFBDisplayLayerCallback function and
uses those in IDirectFB::GetDisplayLayer.  And then when dealing with
mixers structure, the user convert to/from them using the
DFB_DISPLAYLAYER_IDS_* macros.  Is this correct?

I am also curious about screen mixers and what functionality they are
intended to allow the DFB API user (when supported) to perform/configure
on a screen.  It seems like they might allow the ability to
define/override what layers are exposed by the screen when layers are
enumerated (maybe thus controlling what ones will potentially be
blended/composited if they're eventually enabled or made visible), but I
am not sure and need more info about them.  What's the intent of this
functionality?  Full-mode layers vs. sub-mode layers?  What does it mean
for the driver that supports them?  Maybe this topic should be another
thread.  :)

Any information or advice regarding such topics is much appreciated!

Thanks,
Timothy

--

Timothy Strelchun
CE Software Engineering
Digital Home Group
Intel Corporation

The views expressed above are my own and not those of Intel

_______________________________________________
directfb-dev mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to