haiku/src/servers/app/drawing
Stephan Aßmus 7afc7c5074 ServerFont:
* fixed weird pointer conversion in SetStyle()
* fixed a potential mix up in operator=() in case the
  other ServerFont has fStyle == NULL

ServerWindow:
* the WindowLayer fTopLayer cannot be deleted by
  client request, just for safety reasons
* the link is flushed if there is no drawing engine,
  but this case is theoretical only
* deleting the ServerWindow object syncs with the
  client, so that when BBitmaps are deleted, they
  can be sure there are no pending messages (which
  would be executed in a nother thread)
* there is no timeout anymore when sending messages
  to the client, which made absolutely no sense

AGGTextRenderer:
* renamed fFontManager to fFontCache, because that's
  what it really is
* fLastFamilyAndStyle defaulted to the system plain
  font and therefor that font was never loaded when
  the font never changed meanwhile

DrawingMode:
* I'm not quite sure but I think there was the
  potential of a division by zero, at least I
  had crashes with "divide error"

HWInterface:
* fix update when the cursor shape changed in
  double buffered mode
 
ViewLayer:
* since the top layer is never really deleted
  before its time has come, it is not necessary
  to set it to NULL in the ViewLayer destructor

ViewLayer/WindowLayer:
* added a function to collect the view tokens
  that are affected by an update session

EventDispatcher:
* use the importance of the message for the timeout
  in _SendMessage()
* drop mouse moved events in the server if we're
  lagging behind more than 5 ms (Axel, maybe review)

View:
* there were some problems with the locking
  of the BWindow looper in RemoveSelf(), since
  this is called from the window destructor,
  also of BWindows from BBitmaps, which have
  never been run (this might need review), at
  least I seem to have solved the crashing
  problems introduced by actually deleting the
  view hirarchy in the BWindow destructor
* fixed _Draw() for being used non-recursively,
  temporarily disabled DrawAfterChildren, which
  didn't work yet anyways (because views cannot
  draw over children in the server yet)

Window:
* small cleanup when deleting shortcuts
* sync with the server when having send
  AS_DELETE_WINDOW (see ServerWindow above)
* fixed locking in Begin/EndViewTransaction()
* removed folding of _UPDATE_ messages, since
  there is only one ever in the queue
* set the fInTransaction flag during an update,
  I plan to use this in BView later to
  flush the link when drawing outside of an
  update
* BView::_Draw() is now called by view token,
  this gives the next leap forward in speed,
  the overhead because of drawing clean views
  was considerable



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15878 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-08 22:04:52 +00:00
..
old_but_informative removed no longer used stuff 2005-05-20 19:54:12 +00:00
Painter ServerFont: 2006-01-08 22:04:52 +00:00
AccelerantBuffer.cpp The Painter now uses a special version of the agg_font_engine that uses the FontServer ftlib and the already loaded FT_Facees from ServerFont/FontStyle instead of doing it all again. 2005-03-31 06:08:37 +00:00
AccelerantBuffer.h Accelerant based implementations of HWInterface and RenderingBuffer. Untested. 2005-03-29 16:31:46 +00:00
AccelerantHWInterface.cpp Windowscreen sorta works. This should've waited till the end of Christmas holidays, but since I had to fix the build today... 2005-12-25 10:45:39 +00:00
AccelerantHWInterface.h implemented AS_GET_ACCELERANT/DRIVER_PATH and renamed the relative constants 2005-12-24 16:25:47 +00:00
BBitmapBuffer.cpp made room for a new meaning of BitmapBuffer, it will be used for a RenderingBuffer class that wraps arround a ServerBitmap. BBitmapBuffer on the other side is handy as well and wraps arround a BBitmap, as BitmapBuffer did before. 2005-06-27 22:11:27 +00:00
BBitmapBuffer.h made room for a new meaning of BitmapBuffer, it will be used for a RenderingBuffer class that wraps arround a ServerBitmap. BBitmapBuffer on the other side is handy as well and wraps arround a BBitmap, as BitmapBuffer did before. 2005-06-27 22:11:27 +00:00
BitmapBuffer.cpp offscreen bitmaps work, tested on Haiku as well, supports all colorspaces that BBitmap::ImportBits() supports. It uses a fallback for non-B_RGB(A)32 bitmaps. Added support for B_SUB_PIXEL_PRECISION view flags, though it is a bit hacky, since I had to add it to LayerData, even though it is not a true part of stack data. Added Layer::SetFlags() to enforce code path and update fLayerData. Cleaned up DisplayDriverPainter and DisplayDriver API (changed some const BRect& rect to simply BRect rect in order to be able to reuse it in the code), moved Painter.h, the test environment only draws the changed part of the frame buffer again - this causes a lot less CPU overhead, Painter special cases stroke width of 1.0 to use square caps, which is similar to R5 implementation and removes a lot of problems with non-straight line drawing, ServerWindow uses the DisplayDriver from it's WinBorder instead of the one from the Desktop (needed for offscreen windows, which have their own DisplayDriverPainter), it also checks for GetRootLayer() == NULL, because offscreen layers are not attached to a RootLayer, there was a fix for scrolling which worked at least in the test environment, it is now defunced, because Adi moved _CopyBits to Layer... I need to reenable it later, LayerData has no more fEscapementDelta, also fixed fFontAliasing (which was thought to overriding the font flags, and now works as such again), Desktop initialises the menu_info and scroll_bar_info stuff, which makes ScrollBars work actually... hope I didn't forget something. 2005-07-05 16:17:16 +00:00
BitmapBuffer.h offscreen bitmaps work, tested on Haiku as well, supports all colorspaces that BBitmap::ImportBits() supports. It uses a fallback for non-B_RGB(A)32 bitmaps. Added support for B_SUB_PIXEL_PRECISION view flags, though it is a bit hacky, since I had to add it to LayerData, even though it is not a true part of stack data. Added Layer::SetFlags() to enforce code path and update fLayerData. Cleaned up DisplayDriverPainter and DisplayDriver API (changed some const BRect& rect to simply BRect rect in order to be able to reuse it in the code), moved Painter.h, the test environment only draws the changed part of the frame buffer again - this causes a lot less CPU overhead, Painter special cases stroke width of 1.0 to use square caps, which is similar to R5 implementation and removes a lot of problems with non-straight line drawing, ServerWindow uses the DisplayDriver from it's WinBorder instead of the one from the Desktop (needed for offscreen windows, which have their own DisplayDriverPainter), it also checks for GetRootLayer() == NULL, because offscreen layers are not attached to a RootLayer, there was a fix for scrolling which worked at least in the test environment, it is now defunced, because Adi moved _CopyBits to Layer... I need to reenable it later, LayerData has no more fEscapementDelta, also fixed fFontAliasing (which was thought to overriding the font flags, and now works as such again), Desktop initialises the menu_info and scroll_bar_info stuff, which makes ScrollBars work actually... hope I didn't forget something. 2005-07-05 16:17:16 +00:00
BitmapHWInterface.cpp * Prepared the BScreen and BPrivateScreen class to be used with multiple monitors. 2005-11-14 14:36:12 +00:00
BitmapHWInterface.h * Prepared the BScreen and BPrivateScreen class to be used with multiple monitors. 2005-11-14 14:36:12 +00:00
DrawingEngine.cpp * round of baseline position for DrawString() 2006-01-02 18:11:15 +00:00
DWindowBuffer.cpp * got the "cloned accelerant" based DWindowHWInterface to work, though without 2005-12-10 21:45:41 +00:00
DWindowBuffer.h * got the "cloned accelerant" based DWindowHWInterface to work, though without 2005-12-10 21:45:41 +00:00
DWindowHWInterface.cpp currently, there is no mechanism to update the DrawingEngine to a changed frame buffer pointer, so the Window for the Accelerant based test environment is non-movable... will change later 2005-12-20 22:25:20 +00:00
DWindowHWInterface.h * got the "cloned accelerant" based DWindowHWInterface to work, though without 2005-12-10 21:45:41 +00:00
frame_buffer_support.h the source buffer is const of course 2005-12-30 21:26:24 +00:00
HaikuLogo.h The Haiku Logo is displayed on the Desktop. :-) Of course this will be removed as soon as Tracker runs. If you don't want it, you can disable it in RootLayer.h. Fixed a clipping bug with text rendering. 2005-06-11 13:00:17 +00:00
HaikuSystemCursor.h workarround for bug in WonderBrush drop shadow filter... how lame is that... 2005-04-15 17:44:13 +00:00
HWInterface.cpp ServerFont: 2006-01-08 22:04:52 +00:00
HWInterface.h first simplistic implementation of drag bitmaps, drawing modes need more work, drawing text into offscreen bitmaps seems to be broken for some weird reason, B_OP_COPY actually copies the alpha value of the color as well 2005-12-25 22:17:17 +00:00
Jamfile Changed the way the app_server is built: 2005-11-13 15:40:21 +00:00
MallocBuffer.cpp AccelerantHWInterface now uses a MallocBuffer as RenderingBuffer for the back buffer instead of a BitmapBuffer, which under Haiku does not work. 2005-04-01 10:36:23 +00:00
MallocBuffer.h AccelerantHWInterface now uses a MallocBuffer as RenderingBuffer for the back buffer instead of a BitmapBuffer, which under Haiku does not work. 2005-04-01 10:36:23 +00:00
PatternHandler.cpp started to move files arround for better source structure, app_server still builds and runs fine, in case you were worried... 2005-03-25 17:48:49 +00:00
UpdateQueue.cpp Assigned names to "some BLocker"s to aid debugging. 2005-11-04 16:56:15 +00:00
UpdateQueue.h Assigned names to "some BLocker"s to aid debugging. 2005-11-04 16:56:15 +00:00
ViewHWInterface.cpp Filter out some fields in the message that we may set ourselves. 2005-11-22 20:34:02 +00:00
ViewHWInterface.h * Prepared the BScreen and BPrivateScreen class to be used with multiple monitors. 2005-11-14 14:36:12 +00:00