haiku/headers/os
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
..
add-ons Network: added notify settings updated method. 2015-03-27 13:25:27 +01:00
app BRoster: Added ability to pass env on launch. 2015-07-22 20:44:03 +02:00
arch ARM: remove annoying #warning 2014-10-26 23:40:17 +01:00
be_apps Applied slightly reworked and updated patch from ticket #1576 2011-10-29 15:38:20 +00:00
bluetooth Fix more GCC4 narrowing conversion warnings. 2013-05-03 19:42:04 +02:00
device Revert r42812. As pointed by Michael, one can use 2011-10-24 21:02:14 +00:00
drivers fdt: humble beginnings of Flattened Device Tree 2014-10-31 11:14:05 +01:00
game Style fixes to the Game Kit, focus on docs 2014-06-11 16:44:48 -04:00
interface app_server: add new BView layers API 2015-07-25 16:35:52 +02:00
kernel kernel: Add more architecture code post-scheduler 2014-01-19 21:53:56 -06:00
locale Update icu x86_64 package with namespace renaming enabled. 2015-05-10 21:52:36 +02:00
mail Major coding style cleanup. 2015-01-06 15:23:33 +01:00
media BMediaRoster: Add B_MEDIA_SERVER_STARTED and B_MEDIA_SERVER_QUIT 2015-07-24 12:19:33 +02:00
midi BSynth/BSoftSynth: implemented GetAudio(). 2014-09-21 19:46:04 +02:00
midi2 style cleanup 2006-09-21 13:04:59 +00:00
net Add a simple DNS caching system to BNetworkAddress 2015-06-14 15:47:13 +02:00
package Moved BJob, and JobQueue into the support kit. 2015-05-21 21:37:01 +02:00
storage find_paths_etc(): added user/system only flags. 2015-03-26 21:47:22 +00:00
support BReference: missing const cast when building a BReference<const> 2015-06-14 15:46:53 +02:00
translation Actually sort the translator menu used in ShowImage. 2012-08-07 00:41:41 -04:00
AppKit.h added these master include files for better R5 compatibility when compiling 2002-10-23 13:48:14 +00:00
Be.h Patch by Jorma Karvonen: Add LocaleKit.h header and also add it to Be.h. Thanks! 2010-05-16 16:07:55 +00:00
BeBuild.h Added some support for GCC 5+. 2015-07-20 21:45:02 +02:00
DeviceKit.h added these master include files for better R5 compatibility when compiling 2002-10-23 13:48:14 +00:00
GameKit.h added these master include files for better R5 compatibility when compiling 2002-10-23 13:48:14 +00:00
InterfaceKit.h added these master include files for better R5 compatibility when compiling 2002-10-23 13:48:14 +00:00
KernelKit.h added these master include files for better R5 compatibility when compiling 2002-10-23 13:48:14 +00:00
LocaleKit.h Remove references to NumberFormatImpl. 2014-10-06 08:35:50 +02:00
MailKit.h added these master include files for better R5 compatibility when compiling 2002-10-23 13:48:14 +00:00
MediaKit.h added these master include files for better R5 compatibility when compiling 2002-10-23 13:48:14 +00:00
MidiKit.h added these master include files for better R5 compatibility when compiling 2002-10-23 13:48:14 +00:00
NetKit.h * Rewrote NetKit.h, and added the libnetapi headers. 2008-06-24 09:03:44 +00:00
NetworkKit.h Added the new headers to the NetworkKit.h all-in-one header. 2010-10-27 14:16:19 +00:00
StorageKit.h StorageKit.h still included the Alias.h header file I removed with the previous commit. 2007-07-06 12:52:01 +00:00
SupportKit.h added these master include files for better R5 compatibility when compiling 2002-10-23 13:48:14 +00:00
TranslationKit.h added these master include files for better R5 compatibility when compiling 2002-10-23 13:48:14 +00:00