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
bluetooth Fix more GCC4 narrowing conversion warnings. 2013-05-03 19:42:04 +02:00
device
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
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
Be.h
BeBuild.h Added some support for GCC 5+. 2015-07-20 21:45:02 +02:00
DeviceKit.h
GameKit.h
InterfaceKit.h
KernelKit.h
LocaleKit.h Remove references to NumberFormatImpl. 2014-10-06 08:35:50 +02:00
MailKit.h
MediaKit.h
MidiKit.h
NetKit.h
NetworkKit.h
StorageKit.h
SupportKit.h
TranslationKit.h