Commit Graph
100 Commits
Author SHA1 Message Date
Stephan Aßmus 0a95bea66d fixed wrong usage of ConstrainClippingRegion() introduced by myself a couple months ago
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15374 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-06 16:56:31 +00:00
Stephan Aßmus f41715436a remove left over debugging output
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15363 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-06 13:47:16 +00:00
Stephan Aßmus dde10e4519 fixes for various controls to remove or show focus indication when the window active status changes
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15362 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-06 13:46:50 +00:00
Stephan Aßmus a2b387ad6e prevent applying zero offsets to all rects
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15361 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-06 13:45:15 +00:00
Stephan Aßmus a289cd317f slightly improved look
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15360 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-06 13:44:38 +00:00
Stephan Aßmus a825e4034c not in a nice way, but I hope to have fixed the deadlocking problems on program exit
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15279 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-02 00:10:41 +00:00
Stephan Aßmus 0bbd104a7d don't allow the top view to be scrolled
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15278 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-01 21:32:45 +00:00
Stephan Aßmus 7943e1a86d scrolling seems to work nicely, dirty regions are tracked fine and shifted along with the scrolling if necessary
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15277 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-01 21:14:10 +00:00
Stephan Aßmus 727653f7ab implemented invalidation triggered from the client side. 20 clients each displaying an animation in one view at 25 fps leaves the new clipping unimpressed, everything is fluent, also during moving and resizing windows
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15275 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-01 19:04:37 +00:00
Stephan Aßmus 8c8275c2ea showing and hiding windows and views works now, views are not so heavily tested, but any problems should be easy to fix. the recursive IsHidden() is now avoided, there is only one recursion now, which is when the hidden status changes. in the simulation, double clicking a window will temporarily hide it and show it asynchronously from the window thread. looks like the locking model works out fine.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15272 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-01 17:24:47 +00:00
Stephan Aßmus d0e89d5302 I couldn't resist playing some more with ezprof. I don't know if I can trust it's results though, revealing as they are. Somebody should explain to me why forgetting a return *this; in an operator= method works in the first place, and why it results in the constructor being called.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15255 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-30 23:03:05 +00:00
Stephan Aßmus c8b8bbfca4 fix the update session operator=, temporarily enabled Flush()ing the underlying BView again in order to not distract with fake drawing bugs
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15252 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-30 20:51:39 +00:00
Stephan Aßmus 7fd1af6f04 I did some profiling using Daniel Reinholds ezprof, which is quite nice actually. I optimized a bit, without spending too much time on that yet, and now the clipping is on average 7 times faster than the current app_server (the time spend in the root layer thread)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15251 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-30 20:35:47 +00:00
Stephan Aßmus 7e68917fe7 more commenting, if only to clean up my own mind
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15235 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-30 00:29:19 +00:00
Stephan Aßmus 1ba9992d13 a views screen clipping does no longer includes the windows actual clipping, only the content clipping, this simplifies some calculations, and avoids invalidating each views screen clipping when the window clipping changes. at any time the views screen clipping is used, we need to watch out for the effective clipping anyways
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15234 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-29 21:21:12 +00:00
Stephan Aßmus 312345bcb1 with the new design, there is always only one redraw message in the WindowLayers message queue, therefor, ReadLockWithTimeout() is no longer needed, removed RWLocker again as MultiLocker suits our needs.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15232 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-29 20:53:00 +00:00
Stephan Aßmus c63a78aafa now doing without a global dirty region, and it seems it gained a little speed too, should be easier now to make the multi locker work
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15231 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-29 20:35:47 +00:00
Stephan Aßmus 4dd89c6903 * added a multi locker implementation from Ingo Weinhold,
which supports ReadLockWithTimeout()
* commented the code in many more places
* understood the problem of making the read/write locking
  work: While it would be possible for each window to
  remove the processed region from the global dirty region
  in read lock mode (since it is guaranteed not remove
  a region not intersecting with its own visible region),
  multiple window threads can still not do this at the same
  time, since BRegion itself is not threadsafe of course.
* I need to figure out a way for the window threads to be
  able to access and modify all needed data in read only mode,
  I think this means to divide the global dirty region into
  each window again, so that each window thread can simply
  clear its own dirty region instead of excluding it from
  the global region. Yeah, that might work.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15230 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-29 19:08:58 +00:00
Stephan Aßmus b619f15f6d that expensive drawing mode served it's purpose, but it makes it seem like the prototyp is maxing out the CPU again
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15202 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-28 19:40:02 +00:00
Stephan Aßmus 748533bbf9 figured out and solved several problems:
* views are now correctly clipped when they are
  (partly) hidden under their parent(s)
* removed fIsTopView, the top view in a window
  simply has no parent
* introduced WindowLayer::CopyContents() which
  blits part of the contents to another location,
  while moving that part in the dirty regions. Since
  this is currently used from the Desktop thread,
  messing with the update session dirty regions
  requires now to lock the clipping
* that feature is now used for blitting a view to its
  new location in ViewLayer::MoveBy(), which
  works for right and/or bottom aligned views just fine
* I left the global dirty region in Desktop for now,
  moving it into each WindowLayer gave quite a slowdown
  and caused all kinds of other problems.
* a view is now cleared to the background color right
  before the first drawing command from the client
  is executed for that view, this reduces flickering
  a lot because the content is drawn much more shortly
  after the background is cleared.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15201 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-28 19:28:38 +00:00
Stephan Aßmus f51806635b stress testing. It shows that for 40 open windows, the newerClipping design takes 3.5 times less time in the root layer thread compared to the newClipping design. On average, it is about 8.7 times faster. The goal of the redesign, to move the heavier computation from the root layer thread into each window thread, seems achieved, since even with 100 open windows, moving a window does not start any lagging. By removing the global dirty region in Desktop, I think this can be further improved.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15183 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-27 00:18:08 +00:00
Stephan Aßmus 0036cd5d1b I don't want to promise anything but that fix could have been the last remaining bug. Next up is scrolling then showing, hiding, adding and removing layers during runtime... Maybe the simulation can be extended by drawing animations triggered from the client too.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15171 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-26 18:02:13 +00:00
Stephan Aßmus 7241178e3f ViewLayers screen clipping is clipped to the parent bounds, but that is only a partial fix and should be done more elegantly. When moving a window, the part that we could blit is certainly not dirty, the pending dirty region that we drag along is clipped to the new visible region of the moved window
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15170 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-26 17:55:05 +00:00
Stephan Aßmus f5552ed0b2 this fixes the bugs in the update session region enforcement during client drawing, there is only one bug left now: resized ViewLayers don't invalidate the correct regions (they don't take areas into account that are hidden because the parent is too small)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15168 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-26 17:01:29 +00:00
Stephan Aßmus 987aa5e4d4 remaining bugs are with update session region tracking and dirty regions when layers are moved and resized, the window clipping itself seems to work reliably now
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15163 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-26 15:22:35 +00:00
Stephan Aßmus 27b740633e one bug fixed, three more to go
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15162 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-26 14:51:35 +00:00
Stephan Aßmus cfc40fb337 make client drawing slow again, made client drawing use B_OP_BLEND which shows problems with incorrect clipping during update sessions
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15161 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-26 14:33:26 +00:00
Stephan Aßmus 7f705589e2 still buggy but less buggy than before, more caching and less overhead
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15160 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-26 14:07:44 +00:00
Stephan Aßmus ff89d51e02 * adds drawing commands from clients
* adds concept of a current and a pending update session
* marks dirty views being resized or moved

Some aspects of the design are buggy, others are slow, but I'm
approaching a good overview of what's needed and what problems
lurk in the details. In the end I hope to make things work fast
and correctly at all times. Adi or anybody else, feel free to
join the efforts.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15158 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-26 00:13:34 +00:00
Stephan Aßmus 23f32b1552 corrected and cleaned up coordinate conversion. conversion from or to parent coords doesn't actually require a parent, directly using fScrollingOffset, uses less stack memory now and should be faster (especially when converting regions, because those were offsetted twice)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15136 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 21:23:33 +00:00
Stephan Aßmus 0cf04412be please forgive me (next check in when I really coded new stuff)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15135 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 21:04:46 +00:00
Stephan Aßmus 420b55f261 fixed the frame buffer version for real
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15134 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 21:01:49 +00:00
Stephan Aßmus 935510ce32 fixed build of frame buffer version
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15133 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 20:56:53 +00:00
Stephan Aßmus 0b78f37e8e * a bit more sophisticated
* now with actual view layers inside the windows
* implemented the resize modes (from Adis code)
* windows have resize handles and more correctly
  clip the views inside
* bringing windows to front or sending them behind all others
* one active window, the others are inactive
* with and without focus follows mouse mode

* bugs:
  - the region marked dirty when views are
  resized is not correct yet

* todo:
  - move the dirty region from being managed by the
  desktop to being managed in each window (and being
  local too)
  - scrolling
  - hiding/showing of windows and views

I plan to extend this to fully simulate asynchronous
drawing from clients, to see any problems before
using this in the real server one day.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15132 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 20:49:30 +00:00
Stephan Aßmus bef1ed93e1 Adi and I have had long talks about better approaches to clipping and we are convinced that a different design can significantly speed up the clipping processing in the root layer thread. This is a first prototype implementing the new ideas. Lots of features are missing yet, but Adi asked me to commit it now, so that we can both continue to work on it. The purpose of the new design is to significantly reduce the computations during an atomic clipping update, and also to scale much better with many more open windows.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15101 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-24 09:45:28 +00:00
Stephan Aßmus bbbe5a3329 of course, GetPreferredSize() is defined void
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15077 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-22 19:17:12 +00:00
Stephan Aßmus 45b013192a fix crashes when the text pointer is NULL, this lets you for example pick a background image with the Backrounds preflet, though it doesn't work further down
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15076 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-22 19:02:56 +00:00
Stephan Aßmus b223f78041 fixes origin and scale handling, it behaves mostly like R5 now (it is used for drawing only, yes not mouse coords or anything else). Also fixes offscreen layers clipping rebuilding when the user defined clipping is added or changed
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15040 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-20 15:10:18 +00:00
Stephan Aßmus 02ed46b0de * fixes the cursor handling after Axels changes, it crashed on real HW.
Axel, I think you didn't realise that _CursorFrame() gave and
invalid BRect for fCursorVisible=false, but that rect was used
to create the backup area, so it was buggy at that place. I removed
your checks for fCursorVisible in SetCursor() for cleaner code, but
left it in MoveCursor() because it might save a few cycles.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14954 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-16 10:29:06 +00:00
Stephan Aßmus f4cee9d5f5 fix the FBC problem, as Ingo pointed out, derived classes contain slots for all virtuals defined in the base class, therefor, it is ok to just define WindowActivated for BScrollBar. The only problem is that BScrollBar::WindowActivated() cannot be called from apps having overridden WindowActivated() in a BScrollBar subclass of their own.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14953 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-15 23:46:02 +00:00
Stephan Aßmus b894f5f778 fix build of test environment
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14952 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-15 23:43:02 +00:00
Stephan Aßmus 8f90c77db9 a quick fix for offscreen layers drawing region, ie BitmapDrawing works again
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14937 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-15 11:18:33 +00:00
Stephan Aßmus a7ab4a2642 fix activation of windows
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14933 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-15 01:42:58 +00:00
Stephan Aßmus 034104bc0f * fix invalidation of changed items
* fix deselecting items
* fix selection with the mouse and also holding down modifiers
* fix some more stuff I have already forgotten
* applied coding style in most places
* renamed private functions to be consistent

needs more work though, some stuff can definitely be
removed, some needs to be added


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14932 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-15 01:36:10 +00:00
Stephan Aßmus 437fc0be3f invalidate the parent where the blue focus indication actually belongs, completes Axels recent changes
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14931 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-15 01:32:23 +00:00
Stephan Aßmus e1d08bc65b when using enter or space to invoke a button, have the button snooze a mikrod to make sure the visuals get across
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14930 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-15 01:27:37 +00:00
Stephan Aßmus db3c2e1e8e * drawing is on the road to perfection
* uses another virtual to implement WindowActivated() and draw itself in
  disabled look just like in R5
* fixed _ButtonRectFor() off by one errors
* tiny problems remain when clicking on the ScrollBar (it is shifted)
* the _ValueFor() might not be perfect


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14929 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-15 00:23:03 +00:00
Stephan Aßmus 4cfc480f5d no longer valid with new way of setting user clipping
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14881 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-13 00:24:37 +00:00
Stephan Aßmus fbb143cded a new look, the old one is still there and disabled by an ifdef, so it should be easy to return back to the old look should the new one cause any heart attacks. I tried to remind of the Haiku heritage go from there.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14880 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-13 00:22:11 +00:00
Stephan Aßmus d51a034e21 prevent windows from being located at fractional offsets, fixes BAlerts (again)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14879 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-13 00:17:04 +00:00
Stephan Aßmus c5522d81d8 * added SetUserClipping() and DrawingRegion(), which is used for
handling client defined clipping. The client clipping stays in local coords,
  which greatly simplyfies things. We ought to find a way to reduce the number
  of regions needed per Layer. I just added another one...
* renamed a few "lay"s to "child".
* used the new client added clipping in ServerWindow


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14847 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-11 00:19:32 +00:00
Stephan Aßmus 41f78f7884 the current clipping is the combined user defined clipping from all previous states
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14846 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-11 00:14:58 +00:00
Stephan Aßmus d3b27f09af check if the bitmap size can even be expressed in an int32, set init status to B_BAD_VALUE if not. This works arround a bug in WonderBrush... :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14845 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-11 00:12:32 +00:00
Stephan Aßmus d28b9f6540 * disable caching of the clipping region,
there can be no notification when it changes in the server.
  Note that GetClippingRegion() gets the actually effective clipping,
  not only the user defined clipping.
* when removing ourself, set the last mouse moved view of the parent
  window to NULL in case it was pointing to this view
* round the frame rectangle passed to the constructor, I have not
  actually compared this with R5 behaviour though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14844 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-11 00:10:03 +00:00
Stephan Aßmus 8111539117 a quick solution to get some B_EXITED_VIEW transit when the mouse leaves a view, probably gets replaced when Axel is looking into the event handling stuff
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14842 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-11 00:00:29 +00:00
Stephan Aßmus 5211328a37 turn off on-screen debugging for now, the errors it reported are not that critical, and printing the debug info itself could lead to problems
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14820 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-10 13:38:22 +00:00
Stephan Aßmus 0d660a960b handle errors when reading from the link, at least for the bigger items, it should be enough to just check the error in the last call to Read(), since previous errors are kept in the Link
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14819 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-10 13:37:08 +00:00
Stephan Aßmus fabffa3867 fixes for Stroke and FillPolygon
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14818 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-10 13:14:24 +00:00
Stephan Aßmus 97078ce5e6 also return B_BAD_VALUE in case NULL pointer passed, please yell if you disagree with this change, but I thought the client code could look less cluttered this way
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14817 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-10 12:00:10 +00:00
Stephan Aßmus 2b97fe884d now updates BView::PenLocation() correctly after DrawString(), stuff like DrawChar('a') is working nicely now, for rotated text much better then in BeOS in fact because of subpixel precision in pen location
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14794 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-09 16:55:08 +00:00
Stephan Aßmus f8e33ed5bd fixed current pen position, thanks to Stefano for spotting this one, I looked very hard in the same place, but didn't see it :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14787 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-09 13:28:15 +00:00
Stephan Aßmus 9068e077ce fixes thumb frame for 100% proportion
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14771 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-08 01:22:04 +00:00
Stephan Aßmus 971ed3de1e * origin in DrawState is now the summed up origin, when setting it,
use the origin from the previous state as a start
* this fixes scrolling again (minus redrawing too much stuff,
  this is left for Adi :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14770 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-08 01:16:15 +00:00
Stephan Aßmus 3557698909 updated NOTES
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14765 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-07 23:03:34 +00:00
Stephan Aßmus 4f34cedfba also contains code and ideas from Stefano
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14737 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-07 01:33:09 +00:00
Stephan Aßmus 5083a8d56d stunning improvements to drawing, completely removed flickering, only minor visual problems remain, maybe needs testing with regard to targeted views being removed or the scrollbar being removed etc
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14736 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-07 01:26:13 +00:00
Stephan Aßmus 0118ad76e1 * Painter uses the line_cap and join_mode settings of DrawState
* Painter implements DrawShape for stroking and filling BShape data
* Painter uses clipping to avoid problems with huge coordinates, the R5 app_server can be crashed by this.
  -> this should be added to more places as well like text rendering
* DrawingEngine uses the Painter to draw BShape data


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14735 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-07 01:23:40 +00:00
Stephan Aßmus b5f439b668 seems like the BShape implementation was never tested, this update brings it into working condition, but the code could use more refactoring... duplication all over the place
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14734 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-07 01:19:36 +00:00
Stephan Aßmus b574c74121 opList is uint32
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14733 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-07 01:17:40 +00:00
Stephan Aßmus c325acedde just a bit of clean up and added const where appropriate
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14732 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-07 01:16:50 +00:00
Stephan Aßmus 7dd038f405 calling _ResizeBy with zero offset doesn't do anything
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14731 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-07 01:16:12 +00:00
Stephan Aßmus 19ae7ecce0 sorry, forgotten in previous commit
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14730 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-07 01:14:47 +00:00
Stephan Aßmus a38aedd980 no longer needed, moved to painter test folder
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14729 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-07 01:13:12 +00:00
Stephan Aßmus f9129d56a7 updated license header
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14728 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-07 01:11:58 +00:00
Stephan Aßmus c00fc4e31a default to B_MITER_JOIN too
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14727 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-07 01:11:02 +00:00
Stephan Aßmus 72b26b5956 * line join defaults to B_MITER_JOIN. The BeBook says that the line join and
cap mode affect all Stroke* functions. If B_BEVEL_JOIN was indeed the
  default, then StrokeRect() with a pen size of > 1 would have beveled corners.
* fixed sending op code and point data in Stroke/FillShape()


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14726 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-07 01:07:19 +00:00
Stephan Aßmus 5ac57aebfb improved look and applied style guide, fixed redrawing in BWindows with synchronous controls, it wouldn't have mattered if Haiku didn't have anti-aliasing, override B_RETURN on keydown to disallow turning the control off
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14715 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-05 16:46:36 +00:00
Stephan Aßmus e1ab68c612 implemented disabled look for triangle thumb
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14714 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-05 16:44:17 +00:00
Stephan Aßmus b2f2cb6203 simplified coordinate conversion from/to screen by removing duplicated code, Adi was there a reason to check for RootLayer before conversion or was this left-over?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14709 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-04 19:51:38 +00:00
Stephan Aßmus d79939116c fixed build for old clipping
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14708 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-04 19:50:34 +00:00
Stephan Aßmus e7869c4c74 renamed DisplayDriverPainter to DrawingEngine, removed tons of duplicated code, and - guess what - found some bugs while doing so... but nothing critical. This patch removes the former DisplayDriver API from libappserver.so, which I think breaks Decorator plug-ins for now
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14707 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-04 18:22:22 +00:00
Stephan Aßmus fcd75d6357 renamed DisplayDriverPainter.* to DrawingEngine.*
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14696 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-04 15:55:53 +00:00
Stephan Aßmus 6ed894182f renamed DisplayDriverPainter.* to DrawingEngine.*
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14695 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-04 15:54:16 +00:00
Stephan Aßmus 58468dfed0 first step of geting rid of abstract DisplayDriver base class for less development overhead, DisplayDriverPainter is renamed to DrawingEngine
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14694 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-04 15:23:54 +00:00
Stephan Aßmus 13cff625f0 cleanup and removable of large portions of code duplication, fCurrentLayer and fCurrentLayer->CurrentState() are checked in _DispatchMessage already, so _DispatchGraphicsMessage() assumes they are valid
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14691 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-04 13:45:16 +00:00
Stephan Aßmus 55e764c7f6 update license
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14690 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-04 13:41:44 +00:00
Stephan Aßmus e422da6973 fix build for old clipping
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14688 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-04 13:39:12 +00:00
Stephan Aßmus 0f6436373e removed bogus install-libs script, updated NOTES and Playground run script to use the pseudo target install-test-apps
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14686 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-04 12:44:23 +00:00
Stephan Aßmus d05a172192 fixes for the new build system, added script to install some libs, currently only run script of Playground is fixed, jam haiku_registrar (run_haiku_registrar) does not work do to SimpleTests being currently broken, the run scripts needs to be fixed again for the new location of run_haiku_registrar
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14641 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-02 13:20:26 +00:00
Stephan Aßmus 382049ca6f fix build of server for test environment
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14640 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-02 13:15:36 +00:00
Stephan Aßmus 26a2be8ba5 less overhead when byte count of string is already known
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14639 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-02 13:14:03 +00:00
Stephan Aßmus ecf92c7e4b cleaner version of RemoveItems, more error checking
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14638 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-02 13:10:33 +00:00
Stephan Aßmus 2544aac3eb asynchronous version of Alert should have been broken, this looks more correct (not tested)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14637 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-02 13:09:21 +00:00
Stephan Aßmus dbc61d6cf2 implemented real GetPreferredSize() which calculates the minimum size given border_style and label, fixed FrameResized() to invalidate the correct areas of the border
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14636 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-02 13:07:18 +00:00
Stephan Aßmus 1ce9b0cb59 fix build of rc under ZETA
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14613 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-01 12:44:40 +00:00
Stephan Aßmus 09b3f55cb1 replaced the NOTES files in each subfolder with a single NOTES file in the parent folder, and updates the NOTES to the current information
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14452 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-20 13:17:18 +00:00
Stephan Aßmus dd79576b10 * fixed scrolling for the current clipping code, it brings
up a new problem, maybe Adi has an idea for the fix, see
  comment in the code


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14451 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-20 13:06:38 +00:00
Stephan Aßmus 9949213a25 removed the redundant "translator" from the folder names, fixed some warnings in the JPEG2000Translator
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14449 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-20 12:15:56 +00:00
Stephan Aßmus a405a49e82 * cleaned up and applied coding style to FontStyle
* got rid of bogus member variables in FontStyle (which were
  already flags in the underlying FT_Face structure)
* disabled using the FreeType font cache -> I think from
  my earlier tests, I can conclude that the cache was not
  actually working. At least not giving any speed improvements.
  The AGG engine contains a caching system, for now, it works ok.
  I have no idea if this has anything to do with crashes in the
  freetype code, but at least I have not seen any since this
  change. But I have not tested much...



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14448 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-20 10:01:49 +00:00
Stephan Aßmus 2b8347c0d8 don't use potentially stall freetype font face handles. The code is
more correct now, but it doesn't actually fix anything, since FT_Face
handles are nowhere freed in the app_server code.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14447 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-20 09:51:56 +00:00