Stephan Aßmus
359c905c57
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.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13448 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-05 16:17:16 +00:00
Stephan Aßmus
3dcb3b079a
Added some root layer locking in ServerWindow.cpp when accessing the layer tree. Moved HWInterface management out of DisplayDriverPainter and into Desktop. Removed all the directly hardware related functions from DisplayDriver API. They just called the same HWInterface functions. Now DisplayDriver is much cleaner and ready for being attached to a yet to be written BitmapHWInterface. Clean up of the display mode stuff in Screen and the View-/AccelerantHWInterface. Frequency is now regarded on Haiku. AccelerantHWInterface::GetModeList now works before SetMode has been called. Added MultiLocker from the sample code. HWInterface uses it now in preparation to being used from multiple instances of DisplayDriver.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13252 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-23 23:46:17 +00:00
Axel Dörfler
e5b4782b4e
Made some necessary enhancements to class Screen; the app_server also
...
has to care about refresh rates. Also changed Screen::GetMode() (formerly
Resolution()) to return all interesting values, so that hopefully no one
will call it anymore like RootLayer::SetScreens() did.
Greatly improved the horrible RootLayer::SetScreens().
The app_server is now able to deal with failing HWInterface::SetMode() calls;
in this case, it will fall back to the hardware's current mode. This now
also works correctly in combination with the vesa driver, so that you don't
have to compile the app_server with the same resolution you boot in anymore.
SetMode() now always returns if it succeeded or not.
Renamed RootLayer::fScreenXYResolution to fScreenWidth/Height respectively.
Removed the useless DisplayDriver::DisplayMode() method.
Added B_GET_DISPLAY_MODE to the required accelerant hooks.
Some minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12831 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-26 09:21:51 +00:00
Stephan Aßmus
9962b67e5f
DisplayDriver::DrawBitmap() takes no more region, the clipping is expected to be already set, as with all other drawing functions. Moved bitmap drawing message dispatching in the drawing messages area, where the correct clipping is set too. Moved cases for messages that don't need clipping applied, ie which don't draw anything, into the normal dispatch function. This means SetHighColor() and so on will no longer rebuild the clipping in Painter. Would be interesting to know how much performance this had cost...
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12741 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-20 00:09:59 +00:00
DarkWyrm
4a03616356
Added a StringWidth method variant
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12569 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-04 09:40:32 +00:00
Stephan Aßmus
dd3b1653a0
rearranged some functions, removed unused ones
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12562 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-03 21:50:14 +00:00
Stephan Aßmus
93a2cfd43c
Correct implementation of BView::CopyBits() in ServerWindow, implementation of CopyRegion in DisplayDriverPainter that sorts the rects topologically depending on direction and does the copy in place, obtaining a speedup of about 250%. TODO: extract the sorting algorithm so that it can be reused for the hardware accelerated version later.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12468 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-26 13:50:34 +00:00
Stephan Aßmus
387242437d
moved more old stuff which isn't used anymore
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12439 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-18 19:16:11 +00:00
Stephan Aßmus
643d10bb64
Added a big TODO comment, StrokeLine takes now non-const DrawData.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12341 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-12 08:28:25 +00:00
Stephan Aßmus
0cabce17c3
fixed some font related problems, Painter should now rely on the app_server font manager. maybe I fixed some compile problems too. Sorry if that was the case.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12145 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 22:58:09 +00:00
Stephan Aßmus
127b4b0a4b
moved more of the old stuff from DisplayDriver into DisplayDriverImpl
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12142 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 22:22:44 +00:00
Stephan Aßmus
e33b8950a0
removed const declaration to allow locking in DisplayDriverPainter, as I think access to this needs to be serialized
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12139 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 22:00:48 +00:00
Stephan Aßmus
31f3fbc45c
moved original cursor stuff into DisplayDriverImpl, now DisplayDriver is pretty much all abstract
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12106 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-28 18:03:04 +00:00
Stephan Aßmus
197f82a8fe
sorry, forgot to commit the move of the locking implementation
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12093 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-28 13:43:39 +00:00
Stephan Aßmus
7814396f35
moved two rather important functions up in the header
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12046 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-26 22:03:19 +00:00
Stephan Aßmus
1f154920f6
step 3, exracted code from DisplayDriver into DisplayDriverImpl, adjusted the existing implementations to derive from the new class, got rid of some "friend" stuff along the way, essentially I made room for the new Painter based DisplayDriver implementation.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11987 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-25 17:29:45 +00:00
Stephan Aßmus
f0a0f2a462
second step, all unused stuff is actually removed from DisplayDriver.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11984 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-25 13:28:12 +00:00
Stephan Aßmus
f3b44aede9
as a first step, all appearently unused calls are commented outfrom DisplayDriver and derived classes
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11981 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-25 13:15:33 +00:00
DarkWyrm
2418b1a07b
Added a method to get the cursor position
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9812 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-06 19:44:49 +00:00
DarkWyrm
8373d74bdc
Updated DrawString to modify the pen position in the DrawData parameter
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9381 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-16 22:38:43 +00:00
DarkWyrm
cf5f46ff73
Updated StrokeLineArray API to make life easier in calling on server side
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9374 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-16 01:57:13 +00:00
DarkWyrm
66133bb5d9
s/OpenBeOS/Haiku/
...
Style fixes for ServerBitmap and ServerCursor
Assignment operator for GraphicsBuffer
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9018 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-09-20 22:46:37 +00:00
DarkWyrm
f06ff64b1a
Set the API for stroke/fill shape
...
Made a couple API tweaks for stroke/fill polygon
Added a Frame() method to BezierCurve to be able handle polygon API tweaks
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8989 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-09-17 10:20:14 +00:00
DarkWyrm
33cbe8bb6c
Moved a number of classes for DisplayDriver support into DisplaySupport.h
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8540 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-08-07 20:28:03 +00:00
DarkWyrm
557b47b2d0
Janitorial work in DisplayDriver.h
...
Added a #define to ServerConfig for workspace data file
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8171 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-06-26 02:13:58 +00:00
shadow303
225784b713
Minor tweaks to StrokePoint and StrokeSolidLine parameters.
...
Rename clippReg to clipReg
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7621 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-05-20 01:28:17 +00:00
DarkWyrm
1b4ec3a38b
Checkin for Caz (without pain, even!) which adds DrawBitmap support
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7224 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-04-16 17:53:10 +00:00
Adi Oanca
ac903216d7
fixed a bug where a bitmap was mising a pixel line/column
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7158 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-04-04 20:23:12 +00:00
Adi Oanca
9d5fb2696a
consted some parameters
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7148 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-04-03 15:04:28 +00:00
Adi Oanca
8a2b8a4355
* added a temporaly method for constraining the clipping region.
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7077 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-03-28 14:35:13 +00:00
shadow303
52c2367204
Remove some remnants of old API
...
Minor tweak to helper function paramter list
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6835 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-03-01 02:19:48 +00:00
Adi Oanca
82cde293d6
added a method fo copying onscreen regions from one point to another
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6718 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-24 11:50:10 +00:00
DarkWyrm
14ef62299d
Implemented and fixed font functions in DisplayDriver
...
Added some copy functions to ServerBitmap
Replaced LayerData component of Decorator with DrawData
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6601 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-15 20:26:01 +00:00
DarkWyrm
2bde7b6696
Removed the SetMode(int32) call - no longer necessary
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6562 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-12 01:22:47 +00:00
DarkWyrm
70b9b61f23
Made some ServerBitmap get-member functions const
...
Added UtilityBitmap class
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6519 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-07 13:47:52 +00:00
DarkWyrm
871efa51a3
Added some direct-buffer acces functions to DisplayDriver
...
Slight ServerFont tweak
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6476 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-03 00:51:23 +00:00
DarkWyrm
c57a2cdc69
Removed pattern parameter from state-based calls. DrawData already has one
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6383 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-28 02:06:42 +00:00
DarkWyrm
f9de45c608
Major overhaul of the DisplayDriver API
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6336 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-27 00:39:41 +00:00
Adi Oanca
937e6b3e56
I don't know what's wrong with this file... maybe a TAB character? It's identical to the one in CVS
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6045 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-13 00:08:01 +00:00
DarkWyrm
3df88aae3d
Integrated Adi's new desktop code
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6022 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-11 22:08:53 +00:00
DarkWyrm
e0712711bc
Minor API tweak : RGBColor &color -> const RGBColor &color
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6005 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-10 17:07:37 +00:00
shadow303
75377c98c5
Convert to LayerData independent drawing API
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5598 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-12-07 03:19:50 +00:00
DarkWyrm
840db4bded
Added new methods related to DPMS and device capabilities
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5439 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-11-22 00:43:54 +00:00
shadow303
a2d01f224f
Add GetColor15 to RGBColor
...
Prep DisplayDriver for consolidated driver code
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5244 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-11-03 01:55:14 +00:00
DarkWyrm
10aef7cbc0
Retooled pattern passing - much neater now. :)
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4119 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-28 19:13:24 +00:00
DarkWyrm
e81c16a881
Made locking/unlocking publically accessible
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4115 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-28 17:05:09 +00:00
DarkWyrm
9381d29b6f
Massive reconfiguring to fix link problems with all things needing app_server so
...
urces
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3963 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-13 20:56:00 +00:00