haiku/headers/private
Julian Harnath 551438b9be app_server: add new BView layers API
* Add new methods
    BView::BeginLayer(uint8 opacity)
    BView::EndLayer()

* All drawing between begin and end of a layer is redirected onto an
  intermediate bitmap. When ending the layer, this bitmap is
  composited onto the view with the opacity given when the layer was
  started.

* Layers can be nested arbitrarily and will be blended onto each
  other in order. There can also be any arbitrary interleaving of
  layer begin/end and drawing operations.

* Internally, drawing commands are redirected into a BPicture between
  BeginLayer and EndLayer (but client code need not know or care
  about this). Client code can also start/end other BPictures while
  inside a layer.

* Uses the PictureBoundingBoxPlayer to determine the size of the
  layer bitmap before allocating and drawing into it, so it does not
  allocate more memory than necessary and -- more importantly -- it
  will not alpha-composite more pixels than necessary.

* Drawing mode is always set to B_OP_ALPHA, blend mode to
  (B_PIXEL_ALPHA, B_ALPHA_COMPOSITE) while inside layers. This is
  necessary for (a) correct compositing output and (b) for
  redirection of drawing into the intermediate bitmap, which uses the
  renderer_region offset (in B_OP_COPY, the Painter does not use the
  AGG renderer methods, it directly accesses the pixel data. This
  would access out-of-bounds without the offset, so B_OP_COPY cannot
  be allowed.)
  To ensure these modes aren't changed, BView::SetDrawingMode()
  and BView::SetBlendingMode() are ignored while inside a layer.

* The main motivation behind this new API is WebKit, which internally
  expects such a layers functionality to be present. A performant and
  reusable implementation of this functionality can only be done
  server-side in app_server.
2015-07-25 16:35:52 +02:00
..
app app_server: add new BView layers API 2015-07-25 16:35:52 +02:00
audio
binary_compatibility BControl: Add icon support 2013-12-22 02:48:25 +01:00
bluetooth h2: Fix bluetooth driver build, missing PrivateKernelHeaders 2014-05-18 22:33:56 -05:00
debug Move comment to correct function. 2013-05-01 19:52:00 -04:00
device power: Remove old cpufreq interface 2013-11-22 05:30:14 +01:00
drivers scsi_periph: implemented VPD inquiry. 2014-04-09 20:40:11 +02:00
file_systems Fix building Haiku from Haiku 2014-07-13 15:35:31 +02:00
firewire include strings.h where appriopriate... 2014-08-08 22:40:37 +02:00
fs_shell fssh_api_wrapper: fix build on non-Haiku. 2015-01-14 10:16:32 +01:00
graphics radeon_hd: Properly and consistently pick HPD ID 2015-07-14 20:38:15 -05:00
index_server Add a CLucene full-text add-on. 2010-10-28 15:22:52 +00:00
input Implemented the patch on #7963 in a different way. 2011-10-31 18:09:24 +00:00
interface app_server: add new BView layers API 2015-07-25 16:35:52 +02:00
kernel syslog_daemon: Converted to BServer. 2015-07-22 20:40:47 +02:00
libroot launch_daemon: We can now talk to the authentication manager. 2015-07-22 20:43:26 +02:00
locale Fix instanciate_catalog prototype 2015-01-17 17:02:40 +01:00
mail Mail server: fix disabling notifications 2015-01-14 16:27:33 +01:00
media BMediaRoster: Add B_MEDIA_SERVER_STARTED and B_MEDIA_SERVER_QUIT 2015-07-24 12:19:33 +02:00
midi
mount
net libbnetapi: Add BNetworkRoute to replace use of route_entry. 2015-04-12 18:50:00 +02:00
notification Notifications default to enabled on first boot. 2014-11-25 08:50:47 +01:00
package Moved BJob, and JobQueue into the support kit. 2015-05-21 21:37:01 +02:00
print Remove remaining unnecessary 'volatile' qualifiers 2013-11-06 00:03:07 +01:00
runtime_loader runtime_loader: Add imageName and exactMatch to symbol lookup. 2015-04-11 11:18:50 +02:00
screen_saver When testing screensaver, don't have mouse move exit the screen saver. 2014-12-10 21:18:30 +01:00
shared BToolBar: Add a "text" parameter. 2015-07-22 17:37:56 -04:00
storage storage kit: don't expose the dev_t in BPartition::Mount() 2014-09-15 16:28:41 +12:00
support JobQueue: fixed leak, notification, added Pop() variant. 2015-06-03 16:22:44 +02:00
syslog_daemon syslog_daemon: Converted to BServer. 2015-07-22 20:40:47 +02:00
system syslog_daemon: Converted to BServer. 2015-07-22 20:40:47 +02:00
textencoding
tracker Tracker: IconMenuItem: Don't "use namespace" in a shared header. 2015-07-23 11:50:23 -04:00
usb_vision
userlandfs UserlandFS: Make 64 bit clean and enable build for x86_64. 2015-03-29 16:25:17 +02:00
virtio virtio: add queue_is_full(), queue_is_empty(), queue_size() hooks. 2013-09-18 17:43:39 +02:00
vmdk