Commit Graph

17899 Commits

Author SHA1 Message Date
Axel Dörfler
965b10ccaa * Fixed build under BeOS/Dano (only tried the latter, though).
* Does anybody know why HaikuBuildCompatibility.h is not included for tools when
  compiled on BeOS/Dano?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21688 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-23 00:15:45 +00:00
Axel Dörfler
6a05ab0186 My ClientMemoryAllocator implementation wasn't complete and badly leaked memory.
It now at least frees all memory when the object is deleted. Reported by Jonas - thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21687 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-22 23:50:34 +00:00
Stephan Aßmus
5286819920 * last commit broke rendering dots (though it should have been just more
work and no visual change... don't know why) -> fixed


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21686 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-22 20:04:14 +00:00
Stephan Aßmus
38287e02af * completed my changes to DrawState handling, the current DrawingState
of the active ViewLayer is now always mirrored in the Painter instance
  of a ServerWindow, so that it doesn't need to be synced on every drawing
  command, this was previously incomplete for font handling
* removed the DrawState parameter from all the DrawingEngine functions
* adjusted ServerWindow and ServerPicture accordingly
* made sure that string related functions used by non-drawing related
  parts (ServerApp, Decorator) don't interfere with the current drawing
  state
* moved AS_SYNC handling from _DispatchViewMessage to _DispatchMessage,
  it is actually a window message and doesn't require fCurrentLayer to
  be valid
* fixed bug #1300, fCurrentLayer was not updated when a ViewLayer was
  deleted by client request which happened to be fCurrentLayer (I am now
  handling it so that the parent becomes the current layer, could be
  wrong)
* AGGTextRenderer is no longer using it's own scanline, which should save
  a few bytes RAM, the Painter already had such an object
* StringWidth() in AGGTextRenderer is now taking the escapement_delta into
  account
* Painter::StrokeLine() doesn't need to check the clipping as much, since
  that is already done in DrawingEngine
* if a ServerWindow message is not handled because fCurrentLayer is NULL,
  a reply is sent in case the messages needs it (client window could
  freeze otherwise, waiting for the reply for ever)
* removed unused AS_SET_FONT and AS_SET_FONT_SIZE
* added automatic RGBColor -> rgb_color conversion to RGBColor.h
* minor cleanup for 80 char/line limit



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21685 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-22 19:48:27 +00:00
Stephan Aßmus
d069bd6917 * small correction in error handling code path
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21684 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-22 19:33:08 +00:00
Stephan Aßmus
6f867cc1de * rearranged includes
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21683 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-22 19:29:56 +00:00
Stephan Aßmus
7223defe3f * removed unused function
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21682 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-22 13:34:54 +00:00
Stefano Ceccherini
6fbf283fb5 Fixed a bug where Terminal couldn't set itself to fullscreen the first
time. Some minor cleanups.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21681 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-22 13:26:17 +00:00
Stefano Ceccherini
ac3a8f5446 Made all CodeConv methods static, since there was no point for them to
be nonstatic. Moved TermParse under Shell, Removed some parameters 
passing around from TermWindow/TermView/TermParse. Now TermParse threads are 
started when the shell is attached to a TermView. Might still be 
improved.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21680 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-21 20:50:06 +00:00
Stefano Ceccherini
0ed5650b01 Got rid of TermBaseView
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21679 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-21 19:56:55 +00:00
Stefano Ceccherini
90c6c3e8a4 Sorry, the previous commit also contained broken WIP stuff.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21678 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-21 19:22:53 +00:00
Stefano Ceccherini
0d32d905e9 Minor cleanup, Updated some copyrights
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21677 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-21 19:11:41 +00:00
Stephan Aßmus
779b52e5d0 * fix some issues with line placement, now it should be as close to R5
as possible without unacceptable overhead.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21676 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-21 16:06:22 +00:00
Stephan Aßmus
1255bc6988 * added copyright for BRegion backend implementation
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21675 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-20 11:16:04 +00:00
Axel Dörfler
85b65f7585 The AttributeIterator was returning the size of the attribute data rather than
the length of the attribute name in GetNext() for attributes that are actual
inodes. Found by Robert Szeleney, thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21674 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-20 10:45:04 +00:00
Axel Dörfler
9a766e16a7 * Fixed Haiku build over here (no such thing as BEOS_NAME_LENGTH defined here)
* Did anyone see the coding style violations in this file??? :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21673 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-20 00:31:48 +00:00
Ingo Weinhold
6d1c68155a axeld + bonefish:
* More conditional debug code (wrt page transitions between caches).
* Replaced debugger command cache_chain by a nicer cache_tree.
* While handling a soft fault: When we temporarily unlock a cache, it
  can theoretically become busy. One such occurrence is now handled
  properly, two more panic() ATM, though should be fixed.
* When merging caches, we do now always replace a dummy page in the
  upper cache, not only when the concurrent page fault is a read fault.
  This prevents a page from the lower (to be discarded) cache from still
  remaining mapped (causing a panic).
* When merging caches and replacing a dummy page, we were trying to
  remove the dummy page from the wrong cache (causing a panic).

The Haiku kernel seems now to run shockingly stable. ATM, we have more
than two hours uptime of a system booted and running over network. We
didn't manage to get it down by fully building Pe, downloading, unzipping,
and playing with various stuff. Someone should finally fix all those app
server drawing bugs, though (hint, hint! ;-)).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21672 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-19 22:52:23 +00:00
Ingo Weinhold
fd0831b98d axeld + bonefish:
Fixed off-by-one error in the b+ tree code splitting a node, which could
result in a read beyond the block bounds thus causing a page fault. Was
nicely reproducible when unzipping big archives. Now bug #1003 seems to
be fixed for real.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21671 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-19 21:55:05 +00:00
Ingo Weinhold
ead2a0814c * Fine-tuned timeouts.
* Also eat B_INTERRUPTED on sendto()/recvfrom(). The net stack is
  interruptable in principle, but our disk device operations shouldn't.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21670 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-19 21:46:19 +00:00
Ingo Weinhold
fec9ab5d63 More informative output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21669 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-19 21:43:22 +00:00
Axel Dörfler
95163879aa The AutoMounter now also compiles for Haiku again, sorry!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21668 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-19 18:14:38 +00:00
Stephan Aßmus
ed2254308b * just realized a bug already when reading over the commit log...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21666 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-19 17:16:54 +00:00
Stephan Aßmus
582da17386 * complete reimplementation of BRegion and it's backend
I "ported" the region implementation from XOrg to work on BRegion data.

This resulted in pretty much the same code structure as before, with 
RegionSupport.cpp containing the messy details. Only now it _is_ really messy
from a code beauty point of view. I didn't exactly feel like cleaning it
up right now... but I guess I will have to.

So what does this mean - our BRegion implementation was very slow (no offense!),
and on top of that it scaled very badly with more and more rects. The new
implementation seems to be on par with the very fast R5 implementation and
the data looks exactly the same too. BRegion is very performance critical
for the app_server, and I cannot wait to try this on my slow computer...

Some changes are noteworthy: The right and bottom coordinates of
BRegion internal data are now exclusive! I inherited that from the
XOrg implementation and didn't feel like changing the code, seeing it
is probably tested quite well. The conversion is handled transparently.

Secondly, constructing a BRegion with just one rect is not invoking
malloc anymore for the member data, this makes it much more efficient
to use temporary BRegions with just one rect, both externally and internally
in the BRegion implementation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21665 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-19 17:06:28 +00:00
Ingo Weinhold
89369ed1ab axeld + bonefish:
* Increased network timeouts. A single lost ARP request would cause
  finding the server to fail.
* Consequently set the sockaddr_in::sin_len field.
* Added write support.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21664 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-19 14:11:56 +00:00
Ingo Weinhold
f4da50b768 Computed the netmask in net endianess. The wrong netmask caused
misrouting when the net server set up the loop device, thus stopping the
net boot process.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21662 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-19 13:58:17 +00:00
Ingo Weinhold
210ea8a561 axeld + bonefish:
Answered Travis question. We save the registers from the exception
causing the double fault in the double fault iframe, since otherwise it
would contain only completely unusable values.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21661 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-19 13:55:56 +00:00
Ingo Weinhold
b17ea3a37c axeld:
Calm down ARP tracing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21660 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-19 13:39:30 +00:00
Ingo Weinhold
bd03cdc1f6 axeld:
Don't print a message that couldn't be written to the syslog to stdout.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21659 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-19 13:38:12 +00:00
Ingo Weinhold
9c31fe7e21 Implemented emulating write_pages() using the write() hook.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21658 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-19 13:35:53 +00:00
Ingo Weinhold
6a2dfcbd88 Fixed debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21657 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-19 13:34:42 +00:00
Ingo Weinhold
fe679b9fa7 axeld+bonefish:
* Refactored RescanDiskSystems(). Pulled out a function
  _RescanDiskSystems() that scans for either file or partitioning
  systems. RescanDiskSystems(), which scanned for file systems only
  before, is used from the constructor as well (open_module_list()
  works in the early boot process since a while).
* Made InitialDeviceScan() and partition scanning safe to be called a second
  time. We call it directly after the kernel has mounted the boot
  volume, now, so that additional disk systems from the boot volume have a
  chance to recognize previously unrecognized partitions. This is a
  temporary change only; later the disk device manager shall
  automatically find out when new disk systems/devices/whatever are
  available.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21655 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-19 13:32:33 +00:00
Ingo Weinhold
17a5219dba bonefish+axeld:
When loading the driver settings the defaults don't override the
previous variable values anymore.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21654 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-19 13:16:08 +00:00
Axel Dörfler
c16182bfe8 Tracker now also restores the previously opened windows from volumes that were
mounted later by the AutoMounter's initial mounting loop.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21653 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-19 12:52:50 +00:00
Ryan Leavengood
5f43b49ba0 When I added my BuyNow screen saver to the image and ran it, the app_server
crashed. Turns out a call I use, BFont.GetBoundingBoxesForStrings was not 
implemented, and worse, there was bug in how the ServerApp read the parameters
from the link. This was easy to fix to stop app_server from crashing, but it 
took me a while to figure out how to implement GetBoundingBoxesForStrings.

Anyhow I implemented an initial version which works fairly well for now. I
don't think the width is quite right, but it seems to match StringWidth(), so
I guess it is good enough for now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21652 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-19 02:06:32 +00:00
Ryan Leavengood
62c65a7fb2 Use constant for length of file suggested by Ioan Molnar.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21651 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-19 01:16:23 +00:00
Stephan Aßmus
eb9f93f347 * cleanup, removed use of pointers and allocations
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21650 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-18 17:02:44 +00:00
Stephan Aßmus
6369b909b2 * fix comment
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21649 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-18 17:02:03 +00:00
Stephan Aßmus
33ab66d539 * check the overlay of the child being removed, instead of the view's own
overlay (Axel please review)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21648 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-18 17:01:34 +00:00
Stephan Aßmus
41b487e43c * accidentally left the profiling on in last commit
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21647 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-18 13:22:26 +00:00
Stephan Aßmus
67f3be42b0 * added ProfileMessageSupport.h/cpp to translate server message codes to
a string
* fixed profiling of message processsing in ServerWindow (didn't take batch
  processing into account)
* accelerated ViewLayer::RebuildClipping() by a factor of two by avoiding
  BRegion::Exclude(clipping_rect) for each child, and instead building
  one region with all children, and excluding that. RebuildClipping() is
  quite a common operation and is quite slow for views with many children


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21646 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-18 12:59:05 +00:00
Axel Dörfler
0379077f09 * init_double_fault() accidently initialized the wrong TSS for the handler (the regular
one, not the one intended for the double fault) since r20131. IOW double faults are
  now working again.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21645 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-18 12:40:38 +00:00
Stephan Aßmus
da819d069e * performance optimization, getting the bounding box of a text is about 10%
faster


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21644 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-18 12:29:44 +00:00
Stephan Aßmus
0896fce5fb * since every window has it's own Painter instance, the drawing state does
not need to be "set" (transfered from the "current" view to the painter)
  for each singly drawing command. Now, painter is synchronized whenever
  the client changes the drawing state of the current view, or when the
  current view changes.
* the screen offset of the current view has become part of the Painter state,
  in the PatternHandler. This fixes a bug in which moving or scrolling a view
  which used patterns for drawing, resulted in visual glitches (seams in the
  pattern).

NOTE: this patch is a bit work in progress, most importantly, it is not
complete with regards to text rendering. More specifically, the server
applications and other parts of the appserver might set a font on the Painter
and this might mess up the synchronization. But this happens on the Desktop's
Painter instance (only?), and so it is not a problem. I did observe some
drawing bugs with this patch though, so bug reports are welcome, particularily
how to reproduce these bugs reliably.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21643 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-18 09:35:40 +00:00
Axel Dörfler
58f6e8e5e4 * Merged vm_cache_ref and vm_cache to a single structure (Axel & Ingo).
* Renamed vm_cache.c to vm_cache.cpp


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21642 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-18 00:16:27 +00:00
Axel Dörfler
1296365693 Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21641 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-17 23:40:41 +00:00
Stephan Aßmus
0794971822 * one can now specify and "offset" which will be taken into account when
looking up the color in the pattern, this is needed because before,
  patterns were always drawn with the virtual origin in screen coordinate
  space, but they need to be drawn with view coordinate origin taken into
  account (will be implemented in a forthcomming commit)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21639 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-17 20:52:47 +00:00
Stephan Aßmus
5fdc05c105 * make sure that the 80 chars per line limit is not exceeded
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21638 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-17 20:48:54 +00:00
Stephan Aßmus
fd5d46e099 * separated FontStyle and FontFamily into different .h/cpp, before they shared
FontFamily.h/cpp (just for the reason that this is how we do it mostly
  everywhere)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21637 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-17 20:48:06 +00:00
Michael Lotz
7ca97e3548 Patches by Salvatore Benedetto to fix changes made by me and also the underlaying problem that caused high CPU usage in the isochronous finisher thread. Also includes patches to support isochronous support through USBKit / usb_raw. Thanks!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21636 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-17 20:00:53 +00:00
Stephan Aßmus
c65e90b36c * fixed build of libbe_haiku.so on BONE compatible hosts
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21635 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-17 19:54:38 +00:00