Stephan Aßmus
|
55d6f1b792
|
Many efficiency improvements to text rendering. Moved stuff from Painter into AGGTextRenderer which didn't belong in Painter. AGGTextRenderer now has an embedded transformation, which expresses the font rotation and (in future) shear settings. Removed direct support for BBitmaps from Painter (supposed to draw ServerBitmaps). Tested drawing of bitmaps other than B_RGB32. (only B_CMAP8 and B_GRAY8 so far, but they work). Right now, these colorspaces are supported by on the fly conversion. So every colorspace supported by BBitmap::ImportBits() should work, which are a lot more than the R5 app_server can display.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12815 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-05-25 18:20:45 +00:00 |
|
Stephan Aßmus
|
ac167e6ead
|
Various fixes and efficiency improvements to the drawing backend. Among other stuff, stroked lines with a width greater than 1 have anti-aliased butts now. There are some bugs left regarding text rendering.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12761 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-05-22 12:12:56 +00:00 |
|
Stephan Aßmus
|
2762b0cecd
|
Work in progress... improvements on font stuff, reverted to using Painter to get the string width. Since it actually uses glyph caching, it is about 20 times faster than the implementation in ServerFont (and a about twice the time as R5). I added a StringWidth method to Painter and AGGTextRenderer which works as correct as ServerFont::StringWidth, which btw was broken, because I mixed up glyph count and byte count...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12745 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-05-20 19:52:38 +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 |
|
Stephan Aßmus
|
92acca78db
|
Finally nailed a graphics bug I was looking for for quite some time. The only one I'm still seeing is with text. Sometimes the last line of text is not drawn.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12680 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-05-16 11:00:50 +00:00 |
|
Stephan Aßmus
|
151ebb14dd
|
just a little cleanup, made PNG screenshots work
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12665 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-05-15 00:22:55 +00:00 |
|
Stephan Aßmus
|
fbf48e6437
|
Enabled HW acceleration for CopyRegion(). Tested on Haiku and it works. I also implemented FillRegion and InvertRegion. But using different acceleration hooks after one another freezes Haiku, app_server, the accelerant or whatever. I have no clue about accelerants, so if a knowledgable someone would have a look at AccelerantHWInterface.cpp, that'd be great. The software cursor stuff has a cosmetical bug with regards to CopyRegion() too, I don't understand it yet. I also tried to improve StringWidth() and DrawString() preformance. I confirmed that the glyph cache is actually used, but AGGTextRenderer::RenderString() is a dog.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12573 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-05-04 23:48:19 +00:00 |
|
DarkWyrm
|
5e6d7d522d
|
Fixed a TODO - added a method for calling StringWidth with a ServerFont instead of DrawData
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12568 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-05-04 09:39:06 +00:00 |
|
Stephan Aßmus
|
d3194176a3
|
added support for software cursor needed for single buffered mode
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12561 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-05-03 21:48:22 +00:00 |
|
Stephan Aßmus
|
50581a7c0a
|
fixed a bug with drawing ellipses and invalidating the correct area for stroking paths, taking the stroke width into account
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12483 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-04-27 23:17:39 +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
|
ded5874ea2
|
Implemented changes necessary for single buffered mode, it is turned off for now, because the soft cursor is currently not being taken care of. We will still use double buffering if the screen color space is not 32 bits, too.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12449 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-04-20 09:27:15 +00:00 |
|
Stephan Aßmus
|
e742e3e106
|
refactoring and cleanup in LayerData and friends, it shows what I mean by "forced code paths" for example in coupled font size and view scale, added a couple TODOs, disabled decoupled frame buffer transfers, it is buggy and deadlocks for some reason...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12441 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-04-19 00:42:42 +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
|
a4365bfe01
|
support drawing invalid rects
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12422 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-04-15 17:45:10 +00:00 |
|
Stephan Aßmus
|
3d16cf4bce
|
Painter drawing functions now return the BRect enclosing all pixels that have changed, use this for invalidating the correct area in the backbuffer
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12407 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-04-15 09:55:15 +00:00 |
|
Stephan Aßmus
|
764683a939
|
StrokeLine alters the pen location, DrawData needs to be non-const. I didn't make this change in the DisplayDriverImpl stuff, and it is left out of the build for now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12333 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-04-12 08:07:20 +00:00 |
|
Michael Lotz
|
7544c9f03b
|
Implemented DumpToFile() from AccelerantDriver so that screenshots can be taken.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12296 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-04-11 20:15:43 +00:00 |
|
Adi Oanca
|
75efbbb3ed
|
if region is not NULL but invalid, draw nothing
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12265 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-04-06 20:51:38 +00:00 |
|
Michael Lotz
|
54f7283aa0
|
Appearantly StrokeLineArray is used in BButton rendering.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12210 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-04-01 02:06:07 +00:00 |
|
Ingo Weinhold
|
c6ba97963c
|
We didn't Unlock(), if setting the display mode failed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12209 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-04-01 01:11:38 +00:00 |
|
Stephan Aßmus
|
a356096dba
|
massive performance improvements. On my ancient 2xPII 350, the DisplayDriverPainter with the ViewHWInteface is pretty much usable now. It could be even better if app_server culmulated update requests more.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12180 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-03-31 10:46:02 +00:00 |
|
Stephan Aßmus
|
03339b3565
|
added Adis changes, started to return BRect in Painter drawing functions, this will be the area enclosing all pixels that were touched by an operation, so that the DisplayDriverPainter knows exactly what region to copy from back to front buffer, it calculates that by itself for all other functions, which is not as robust.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12170 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-03-30 22:10:42 +00:00 |
|
Stephan Aßmus
|
45c0cd28d8
|
scrolling BViews now works, tested with MiniTerminal, added lots of TODO stuff, maybe Adi or DarkWyrm should have a look, maybe they can clear some stuff up for me.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12161 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-03-30 16:05:05 +00:00 |
|
Stephan Aßmus
|
d324aa8386
|
fixed MiniTerminal rendering, for real now
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12151 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-03-30 00:12:24 +00:00 |
|
Stephan Aßmus
|
d3b0b7b979
|
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@12144 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-03-29 22:57:43 +00:00 |
|
Stephan Aßmus
|
3f537e5fa7
|
moved more of the old stuff from DisplayDriver into DisplayDriverImpl
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12141 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-03-29 22:22:28 +00:00 |
|
Stephan Aßmus
|
b3b4f48527
|
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@12137 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-03-29 21:45:52 +00:00 |
|
Stephan Aßmus
|
7940a07172
|
DisplayDriverPainter should now use the new AccelerantHWInterface when compiled for Haiku, added locking to the rest of the functions which access HWInterface instance
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12135 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-03-29 21:26:58 +00:00 |
|
Stephan Aßmus
|
d3db964ed0
|
code refactoring, moved common stuff into the base class
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12129 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-03-29 17:36:38 +00:00 |
|
Stephan Aßmus
|
1a7fc52717
|
added some functions with optimized implementation, optimizes most frequent usage
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12113 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-03-29 01:43:04 +00:00 |
|
Stephan Aßmus
|
e33b90ea35
|
implemented cursor support in the DisplayDriverPainter
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12107 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-03-28 18:03:45 +00:00 |
|
Stephan Aßmus
|
181a984e2a
|
implemented the rest of the drawing calls save for Stroke/FillShape, since I would have to ask what kind of data this function is being passed
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12092 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-03-28 13:39:35 +00:00 |
|
Stephan Aßmus
|
53115c9920
|
moved the place of implementation of locking in DisplayDriver, because the Painter version has it elsewhere. the DisplayDriver locking API is now abstract, the same locking is now in DisplayDriverImpl, Painter version uses HWInterface for locking
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12084 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-03-27 22:02:19 +00:00 |
|
Stephan Aßmus
|
c3314ff5eb
|
added DPMS functions to HWInterface as well as Initatialze and Shutdown, added a couple of TODO comments
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12058 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-03-26 23:23:40 +00:00 |
|
Stephan Aßmus
|
4157339be2
|
started to implement stuff, it can actually be used and renders my test app almost like the old implementation, plus clipping
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12050 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-03-26 22:09:02 +00:00 |
|
Stephan Aßmus
|
a850bd1d8f
|
added Painter to the app_server build and fixed the Jamfile to include the drawing subfolder for header search path
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12010 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
2005-03-25 22:44:18 +00:00 |
|