* compare recorded / restored picture to direct drawing into bitmap
* renamed Test Vertical Line -> Test Diagonal Line
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21898 a95241bf-73f2-0310-859d-f6bbb57e9c96
* the previous AGG implementation is superfluous
* the new implementation is based on that one, but in a way that allows
read/write locking to the list of cache entries (fonts) as well as
read/write locking to the cached glyphs per individual font cache entry
* new GlyphLayoutEngine.h, which is to be the central place for layouting
glyphs along the baseline.
It handles the locking for getting the font cache entries.
It works by giving it a template class GlyphConsumer which does the
actual work.
* changed AGGTextRenderer to use the new font cache
* changed ServerFont::StringWidth(), and the bounding box stuff to use it
* changed DrawingEngine, it doesn't need the global font lock anymore
* our BFont thought that GetBoundingBoxesAsGlyphs and GetBoundingBoxesAsString
is the same, which of course it isn't, hence the two separate functions...
AsGlyphs just gets the bounding box of each glyph in a string, not treating
the string as an actual word
AsString adds the offset of the glyph in the word to the bounding box
* changed ServerProtocol.h accordingly for the different bounding box meaning
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21797 a95241bf-73f2-0310-859d-f6bbb57e9c96
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
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
(currently, only the HFS+ GUID is known).
* The header and partition table CRCs are not yet validated, though.
* Enabled EFI in the boot loader test app.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21540 a95241bf-73f2-0310-859d-f6bbb57e9c96
This should be retested on R5 to make sure it'll still work there.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21413 a95241bf-73f2-0310-859d-f6bbb57e9c96
the route table to determine if an address is local or not (BONE incorrectly allows
you to bind against non-existing and non-local interfaces).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21412 a95241bf-73f2-0310-859d-f6bbb57e9c96
* fixed the build of netfs under BONE/Dano by using
the already existing build system defines instead of wrong checks
for wether to use BONE headers
* the client tried to bind to a non existing address for receiving
broadcasts from the server (but the broadcasts are still not received,
which will be worked on next)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21409 a95241bf-73f2-0310-859d-f6bbb57e9c96
AbstractButton.
* Added RadioButton and RadioButtonGroup.
* In the BBox test the border style can be switched now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21343 a95241bf-73f2-0310-859d-f6bbb57e9c96
* The test to be run can be chosen via command line argument ("box" or
"button" ATM).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21253 a95241bf-73f2-0310-859d-f6bbb57e9c96
also calling InvalidateLayout() and Invalidate(), if necessary.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21251 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added a check box to toggle the button font to the button test.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21190 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Tests for individual widgets are encapsulated as Test subclasses.
* Added a check box to toggle the button label to the BButton test.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21189 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Implemented CDDB ID computation (that's what BeOS's cdda-fs is using).
* Some other minor changes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21144 a95241bf-73f2-0310-859d-f6bbb57e9c96
size of the view tested can now be overridden explicitly.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21142 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Implemented most of the directory retrieval functions of the file system; even renaming
titles should work now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21139 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Display the min, max, preferred, and current size of the tested widget.
* Some cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21115 a95241bf-73f2-0310-859d-f6bbb57e9c96
and add wrappers for watch_node() as well, though.
* Implemented more or less all what is needed for the path monitoring to work.
* Added a test application: works fine under Haiku, but somewhat flaky under BeOS,
dunno why yet.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21066 a95241bf-73f2-0310-859d-f6bbb57e9c96
field was always 1, and therefore, the last allocation group could grow too large.
Thanks to Samuel Rodriguez Perez for reporting the error (bfs_shell was crashing on
larger images).
* Minor cleanup in BlockAllocator::_Initialize().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21053 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Note that r20809 also fixes a bug in Inode::GetAttribute() - it could clobber
the attribute parameter and still fail (which could create problems in WriteAttribute()).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20810 a95241bf-73f2-0310-859d-f6bbb57e9c96
seems, as it leads to a crash. The GLDirectMode test app now works.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20725 a95241bf-73f2-0310-859d-f6bbb57e9c96
shuffled "isExecutable" to the end. The new order favors the common use
cases. Adjusted all Addon invocations and while at it also removed
separate LinkAgainst invocations.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20604 a95241bf-73f2-0310-859d-f6bbb57e9c96
small to hold the information for the requested I/O size.
* get_file_map() returned B_BUFFER_OVERFLOW already in case the array
was exactly as large as needed.
* read_chunk_into_cache() and write_chunk_to_cache() will no longer
override their local "size" variable.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20509 a95241bf-73f2-0310-859d-f6bbb57e9c96
and #928. Under certain conditions a fork()ed child process can
write to the parent process' memory.
A fix follows...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20401 a95241bf-73f2-0310-859d-f6bbb57e9c96
built for UserlandFS. The latter appears to be working fine.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20347 a95241bf-73f2-0310-859d-f6bbb57e9c96
add-ons accordingly and removed the syscall.
* Removed send_notification().
* Reimplemented notify_listener(). It used the unimplemented
send_notification(). Now it has a chance to work. Note that
notify_listener() is obsolete. I would already have removed it, if
there weren't lots of FS implementations still using it (Hint!).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20329 a95241bf-73f2-0310-859d-f6bbb57e9c96
* For B_EQUALS queries the first match would be skipped.
* Exact entry name matches were broken, since the used NameIndex::Find()
expected null-terminated keys with the \0 included in the key length
while it was fed only the raw string length.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20306 a95241bf-73f2-0310-859d-f6bbb57e9c96
Currently Archiving the Unflattened picture doesn't work, and it hangs
inside assert_local_copy(), waiting for the app_server reply...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20280 a95241bf-73f2-0310-859d-f6bbb57e9c96
the stream after Flattening. Now Unflattening works, but the picture
seems to be empty
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20270 a95241bf-73f2-0310-859d-f6bbb57e9c96
doesn't show up, that means something is still broken in Flatten() or
Unflatten()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20267 a95241bf-73f2-0310-859d-f6bbb57e9c96
Haiku's userlandfs. I wouldn't expect them to work very well yet, though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20255 a95241bf-73f2-0310-859d-f6bbb57e9c96
headers dir are used instead. Added missing <new> inclusion.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20253 a95241bf-73f2-0310-859d-f6bbb57e9c96
reason, don't see the obvious. Well, or doesn't if absent...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20230 a95241bf-73f2-0310-859d-f6bbb57e9c96
reference without being a referring entry.
* Reworked entry renaming. We do now remove the original entry first and
then create a target entry. Renaming directories didn't work before since
there would temporarily have been two links to a directory, which is not
allowed. Replacing an entry was also broken: The original entry was not
removed. Due to reversing the entry creation/deletion order we also do no
longer suffer from the Tracker bug, that entries would disappear from
queries when being renamed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20204 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added missing locking in the query hooks.
* Added live query support similarly as done in BFS:
- Volume manages a doubly-linked list of live queries.
- Volume::UpdateLiveQueries() invoked from several places where it makes
sense (standard indices, Attribute::WriteAt(), and
BVolume::NodeAttributeRemoved()) notifies the live Query objects.
- Adjusted Query to be able to deal with hard links. Unfortunately Tracker
is a bit broken with respect to hard links, particularly in the query
windows. E.g. only one entry referring to a node is shown, and the renaming
method RamFS uses (link new entry, then unlink old one) causes renamed
entries to fall out of queries, even if they should still be in.
(Want a bug report for this, Axel? :-P)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20203 a95241bf-73f2-0310-859d-f6bbb57e9c96
not-yet-mounted ClientVolume was not removed, which could cause query requests
to crash the server.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20184 a95241bf-73f2-0310-859d-f6bbb57e9c96
modifications for BONE/Dan0). As test file systems are included:
* A Reiser FS 3.6 read-only implementation (should be a virtually unmodified
version released as 1.0.1 on BeBits).
* A not quite finished RAM FS.
* A BeOS-specific networking FS. It works well as far as I've tested it, but
is utterly insecure at the moment and missing nice GUI preflets. It's also
amazingly slow which, I hope, is mainly caused by the UserlandFS layer and
BeOS R5 net server. We'll see as soon as it can be compiled for the Haiku
kernel.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20171 a95241bf-73f2-0310-859d-f6bbb57e9c96
Added stop_console(), a shutdown procedure for consoled (for cases
when it executes a single command only, like the debugger).
Unfortunately the system kind of freezes when the keyboard is attempted
to be closed. Entering KDL still works. It always shows consoled's
keyboard reader thread running somewhere in the endless loop in
keyboard_read() in the keyboard driver. The main thread is ready in
delete_sem() invoked by keyboard_close(), not advancing any further when
continuing the system. Apparently the scheduler needs a good spanking.
:-P
Generally it also doesn't help that the keyboard driver code is
completely cookie ignorant.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20135 a95241bf-73f2-0310-859d-f6bbb57e9c96
then the overhead of a call into libroot, and finally the overhead of a syscall
(using is_computer_on).
The numbers are totally abysmal right now. :(
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20070 a95241bf-73f2-0310-859d-f6bbb57e9c96
broken (see bug #996), but less broken than Be's.
Also the Linux implementation is not perfect, as test 4 reveals: it waits for a
child with a certain process group, even if there is no child around anymore (because
the last child changed its process group. However, it will still return (and report
the correct error code) once this child exits.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20009 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Fixed comment, as Haiku now behaves properly at least for most cases :-)
* Style guide update.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20007 a95241bf-73f2-0310-859d-f6bbb57e9c96
wait() should return with an error when the process has no children
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19983 a95241bf-73f2-0310-859d-f6bbb57e9c96
another test that doesn't work on BeOS, dunno why, but who cares...).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19767 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Implemented a fibo_fork which uses fork() instead.
* Both tests can pretty easily let the kernel crash!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19764 a95241bf-73f2-0310-859d-f6bbb57e9c96
due to problems with wait_for_thread().
* Minor cleanup to the Jamfile.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19757 a95241bf-73f2-0310-859d-f6bbb57e9c96
still tons of OpenBeOS references in various source files (especially in
comments), but this was more overt.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19461 a95241bf-73f2-0310-859d-f6bbb57e9c96
* there are now two hash tables: one for connections, and one for ports
* the first one is used to find the endpoint for incoming connections
* the latter is used to check if the address to bind() to is still available
(incl. support for SO_REUSEADDR, and SO_REUSEPORT). Specialising an existing
socket is not allowed, though; wildcard sockets need to be started last.
* the TCPConnection class now has a pointer to the next endpoint with the
same port number - this list is scanned for the existing bound sockets
on that port.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19416 a95241bf-73f2-0310-859d-f6bbb57e9c96
* socket_recv[from]() now accept a NULL buffer in case there was nothing to read.
* the tcp_tester's server thread now actually reads the data it receives.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19400 a95241bf-73f2-0310-859d-f6bbb57e9c96
* cancel_timer() cancels a timer, and returns true if the timer was running
* is_timer_active() determines if the timer is currently running or not.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19393 a95241bf-73f2-0310-859d-f6bbb57e9c96
but use integer coordinates. These are now used in ViewLayer for the
coordinate system (layout, scrolling offset, view bitmap layout)
* modest performance improvements by inlining some very often used
methods, and by preventing to go down the entire layer tree too often,
for example InvalidateScreenClipping was always called in the deep
mode, therefor it is save to assume that the tree does not have to
be traversed as soon as the clipping is already invalid
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19390 a95241bf-73f2-0310-859d-f6bbb57e9c96
that the terminal's color is changed when the app is quit (or interrupted).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19381 a95241bf-73f2-0310-859d-f6bbb57e9c96
* The MTU returned by the domain was too large; it should already take the
IP header into account.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19373 a95241bf-73f2-0310-859d-f6bbb57e9c96
receiving thread. While this steals away a test case for now (dead lock), it will
allow to reorder packets in a better way.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19363 a95241bf-73f2-0310-859d-f6bbb57e9c96
* you can now instruct it to drop specific packets
* you can now also define a round trip time for the packets
* added a "send" command to send arbitrarily sized buffers over TCP.
Not surprising, the current implementation of TCP doesn't do anything with
those (other than crashing as soon as you try to send data).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19362 a95241bf-73f2-0310-859d-f6bbb57e9c96
this option now using the "dprintf" command
* Added dump_block() function to kernelland_emu
* Added tcpdump-like output to tcp_tester for each TCP segment, lines from the
server are red, lines from the client are black.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19334 a95241bf-73f2-0310-859d-f6bbb57e9c96
actual versions cannot work in userland.
* Extended the tcp_tester to be able to connect and quit connections.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19330 a95241bf-73f2-0310-859d-f6bbb57e9c96
Locking GL context is better, even if it's not mandatory under Be's R5 OpenGL stack.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19259 a95241bf-73f2-0310-859d-f6bbb57e9c96
a window to the PictureTest which should show the svg lion, but doesn't
work yet for some reason
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19243 a95241bf-73f2-0310-859d-f6bbb57e9c96
able to connect to itself, this should already work at this point.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19234 a95241bf-73f2-0310-859d-f6bbb57e9c96
a set of commands that can be thrown at a listening and a client end of a TCP connection.
This will allow for an easier and faster implementation of the TCP module, as well as
regression tests, etc.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19232 a95241bf-73f2-0310-859d-f6bbb57e9c96
could get modules whose initialization failed.
* Fixed how built-in modules are initialized.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19231 a95241bf-73f2-0310-859d-f6bbb57e9c96
yet
added to the image) written by Marc Flerackers, for a SVG -> BPicture
importer, will be used to show the SVG lion and butterfly (included in
this commit)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19177 a95241bf-73f2-0310-859d-f6bbb57e9c96
draws some stuff directly, the other draws the same stuff using a
BPicture. This shows that BPicture doesn't support BShapes yet, and it
has some problems with pen size.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19129 a95241bf-73f2-0310-859d-f6bbb57e9c96
Reported by Robert Szeleney.
* Fixed an endian problem in write_stat() in the R5 version of BFS.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19121 a95241bf-73f2-0310-859d-f6bbb57e9c96
the data stream area is reused as link data in this case.
Reported by Robert Szeleney.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19120 a95241bf-73f2-0310-859d-f6bbb57e9c96
Haiku image) revealed a problem with that change:
* If the root node only contained a single entry it was freed instead of just making
it a leaf node - that could produce an invalid b+tree (could only happen with
attribute or index trees, as directories always contain '.' and '..').
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19006 a95241bf-73f2-0310-859d-f6bbb57e9c96
system given by BBitmap::Bounds() when drawing bitmaps (Haiku copies
this bug)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18022 a95241bf-73f2-0310-859d-f6bbb57e9c96
in my branch, but in the main trunk. That should do no harm though.
* Made LayoutTest1 build for libbe_test and added it to the
install-test-apps target.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17982 a95241bf-73f2-0310-859d-f6bbb57e9c96
on R5 it seems a reply to a asynchronously-forwarded synchronous BMessage is the same as when no forward happens
I didn't test on Haiku, but I suspect the behavior is different, especially a _previous_ is added as for asynchronous BMessages
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17814 a95241bf-73f2-0310-859d-f6bbb57e9c96