haiku/headers/private/interface
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
..
AboutWindow.h AboutWindow: Move to Interface Kit (still private) 2014-03-25 14:17:19 -04:00
BitmapPrivate.h Make it possible to reconnect BBitmap to the app_server. 2012-01-22 15:30:15 +13:00
BMCPrivate.h BMCMenuBar: Refactor MakeFocus() 2013-08-25 00:09:28 -04:00
clipping.h BRegion scaling: fix semantics to avoid holes/overlaps 2014-06-19 19:23:29 +02:00
ColorConversion.h * Introduced PaletteConverter::IndexForRGBA32() which checks if the alpha 2010-04-30 11:29:14 +00:00
ColorTools.h Delete old rgb_color operators that are no longer needed. 2015-02-28 12:54:31 -05:00
ColumnListView.h {Tree,Table}: Add cell rect accessor. 2015-07-17 23:12:39 -04:00
ColumnTypes.h A bunch of style fixes 2014-12-02 19:23:51 -05:00
DecoratorPrivate.h * Put the decor stuff in the BPrivate namespace, as it should have been from 2011-05-21 18:12:25 +00:00
DecorInfo.h Update DecorInfo to scan for decorators 2014-02-20 19:31:49 -05:00
DefaultColors.h
DirectWindowPrivate.h now uses DIRECT_BUFFER_INFO_AREA_SIZE as the direct_buffer_info area size 2008-11-05 23:40:29 +00:00
DraggerPrivate.h
FontPrivate.h
Icon.h BControl: Move icon code to separate class BIcon 2013-12-22 15:17:53 +01:00
input_globals.h
InterfacePrivate.h Moved functions declarations to InterfacePrivate.h 2009-07-30 16:46:19 +00:00
MenuPrivate.h MenuPrivate: Add a SetLayout() method to MenuPrivate 2015-02-20 14:35:36 -05:00
MenuWindow.h BMenu: scroll marked item into view when menu has scrollers attached. 2013-05-03 21:10:51 +02:00
Palette.h
PictureDataWriter.h app_server: add new BView layers API 2015-07-25 16:35:52 +02:00
PicturePlayer.h
PicturePrivate.h Forgot this file. 2012-01-22 15:30:18 +13:00
PictureProtocol.h app_server: add new BView layers API 2015-07-25 16:35:52 +02:00
PrivateScreen.h * Moved PrivateScreen.h header to headers/private/interface. 2009-08-21 09:37:54 +00:00
RegionSupport.h
ShapePrivate.h BShape: Style fixes for docs 2014-07-14 19:02:44 -04:00
StackAndTilePrivate.h - Make MessageForListener a bit more flexible, passing a fix ServerLink is sometimes not enough and a separate sender and receiver is needed. 2010-11-20 06:47:20 +00:00
TabViewPrivate.h TabView: Add TabViewPrivate class, actually fix non-layout SetView. 2015-07-14 11:04:39 -04:00
TextViewSupportBuffer.h Use the Bfont object to discriminate between fonts (as in Dano) 2010-07-03 09:34:59 +00:00
ToolTip.h * Made the BToolTip interface a bit more convenient to use when subclassing it. 2009-08-11 12:32:12 +00:00
ToolTipManager.h Refactor ToolTipManager a bit. 2012-05-02 23:51:49 -04:00
ToolTipWindow.h Moved stable tool tip concept into the BToolManager class. 2012-04-28 22:14:03 +02:00
truncate_string.h * Replace the truncate_string() helper function with a new, simplified version. 2010-02-01 18:43:03 +00:00
utf8_functions.h Add an UTF8NextCharLen() version that takes a string length. 2011-12-06 19:09:56 +01:00
ViewPort.h Add private BViewPort class 2013-09-11 04:51:03 +02:00
ViewPrivate.h ViewPrivate.h: minor cleanup, no functional change. 2015-02-13 22:33:57 +01:00
WidthBuffer.h * cleanup and style fixes in WidthBuffer 2010-08-11 18:03:37 +00:00
WindowInfo.h * extend Haiku specific client window info to include the tab height and border size 2009-01-27 21:03:32 +00:00
WindowPrivate.h Fixes #7796. The decorator add-on is unloaded when not needed anymore. Avoid assigning offscreen windows a window behaviour (which lives in an add-on). When loading another add-on the offscreen window was still pointing to an invalid window behaviour. 2011-07-25 03:32:14 +00:00
WindowStack.h Fix coding style. 2010-08-20 04:34:18 +00:00
ZombieReplicantView.h Final part of cleanup in Catalog.h. 2012-04-16 00:04:41 +02:00