Commit Graph

24941 Commits

Author SHA1 Message Date
Ingo Weinhold
4c9d4b02ef * Change the line history to a more compact format. We reserve
lines * (width + 8) bytes which is only a little more than a sixth of
  what it was before. The effect on performance is relatively small. In
  my tests I measured about 2% slowdown.
* Fixed artifacts after soft-wrapped lines.
* Re-enabled cursor blinking. I changed it so that the cursor is 1s
  shown and 0.5s hidden (instead of 1s each). Tell me what you think.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25957 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-14 21:37:40 +00:00
Michael Lotz
345dc29f8a When drawing bitmaps with B_OP_OVER with a color space that does not provide
an alpha channel of itself, we have to respect B_TRANSPARENT_MAGIC_* pixels
and properly make them transparent. We achive that now by just setting the
alpha to 0 in our converted B_RGBA32 bitmap for each pixel where there is a
B_TRANSPARENT_MAGIC_* pixel in the source. This is not really efficient, but
fixes missing images for example in NetPositive. They were treated as B_RGBA32
while they in fact were B_RGB32 and happened to have all alpha bits set to 0.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25956 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-14 20:52:05 +00:00
Michael Lotz
50320b5500 Implement B_EJECT_DEVICE and B_LOAD_MEDIA through the START_STOP_UNIT SCSI
command.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25955 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-14 20:51:55 +00:00
Michael Lotz
6309b004c6 When drawing the decorator buttons lock the DrawingEngine, enable copying to
the front buffer, draw the bitmap, restore the copy to front buffer state and
unlock. This fixes that the updated button state was not actually copyied to
the front buffer (and therefore visible) when a window was inside an update
(disabling front buffer copying).

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25954 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-14 20:51:20 +00:00
Michael Pfeiffer
d7693ead7f Closed ticket #2281. Method Link in class LocalLink shadowed destructor of parent class Link.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25953 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-14 09:19:54 +00:00
Michael Lotz
e13a79e005 * Cache the close and zoom buttons in a blit-ready bitmap so the buttons don't
need to be drawn each time an update occurs (switching focus/non-focus or
  pressed state, involving many graphics card blits and state updates in the
  drawing subsystem).
* Provide a shared list of already present bitmaps. All the default decorators
  now use the new _GetBitmapForButton static method to get a rendered bitmap
  of the button for the given size and state (focus, pressed). If a matching
  bitmap exists it is returned, otherwise a new one is created on demand using
  a shared BitmapDrawingEngine.
* Cache the colors of the tab and frame for both focus and non-focus states to
  avoid always looking them up.
* Added a todo that these bitmaps and the BitmapDrawingEngine are never freed.
  They should be freed on app_server quit, but as there are only like 12 of
  them anyway I didn't really bother.
* Some cleanup.

This should reduce the waste of cycles for just drawing the default decorator
buttons quite a bit. Probably the whole tab should be pre-rendered though to
also safe the text rendering of the title.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25952 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-13 13:48:33 +00:00
Michael Lotz
33d85b510b Add a handy utility class that provides a DrawingEngine directly attached to a
server side UtilityBitmap of a certain size. It sets up the DrawingEngine, the
UtilityBitmap and the BitmapHWInterface necessary so that one can directly
do drawing to a bitmap using the normal DrawingEngine interface. It provides
an ExportToBitmap method that allocates an output UtilityBitmap of a specified
size and color space where the content is put into, so a single instance of a
BitmapDrawingEngine can be reused for various drawing.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25951 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-13 13:28:13 +00:00
Jérôme Duval
3b6336e41c PNGDump supports B_RGB16 now
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25950 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-13 06:54:03 +00:00
Alexandre Deckner
c3f006deb0 - initialize the variable, we never know :)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25949 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-13 00:36:06 +00:00
Alexandre Deckner
709ef82757 - BMenu caches the preferred size (since r21396) but didn't recompute it if the ResizingMode changed, it did it only in
InvalidateLayout().

  This fixes #1461, the bug appeared because DraggableContainerIcon uses a special trick, involving changing the resizing 
mode, to get the total width of the menu items. (see tracker/ContainerWindow.cpp line 479)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25948 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-13 00:24:01 +00:00
Rene Gollent
fe83a98715 Remove unneeded header.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25947 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-12 21:33:13 +00:00
Rene Gollent
0c8bdbafd5 Revamp BList somewhat to further optimize the resizing behavior.
We now keep track of a lower bound as to when the list should scale
itself back down. When increasing the list size, we double the current,
with the lower bound set to 1/4 of the current size, not allowing it to
go any smaller than the block size. These combined allow us to do very
cheap tests to see if an operation requires a resize at all, and minimize
how often the list actually needs to be resized, since the difference in upper
and lower bounds prevents bouncing back and forth between a size in the case
of adding/removing an item while close to a boundary. All in all this should
make BList noticably more scalable when doing large numbers of add/remove
operations.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25946 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-12 21:30:28 +00:00
Oliver Ruiz Dorantes
1b9e61ad87 Remove some reference code
Replace bsd types for haiku ones
-ve-This line, and those below, will be ignored--

M    l2cap/l2cap_command.cpp
M    l2cap/l2cap.h


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25945 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-12 19:53:06 +00:00
Oliver Ruiz Dorantes
43f36da804 - Follow directions from mmlr regarding ticket 2353. Do not resubmit if the transfers are already cancelled.
- As more cleaning still needs to be done regarding this subject the ticket is not yet closed 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25944 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-12 19:42:21 +00:00
Oliver Ruiz Dorantes
c15ecd98ca - Add some core code for the L2CAP layer (l2cap commands)
- Tailor a bit the main module
- Fix definitions in the main header




git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25943 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-12 19:31:29 +00:00
Oliver Ruiz Dorantes
350458a6ba - Add PinCode command replies
- Add CancelInquiry command


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25942 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-12 19:18:32 +00:00
Alexandre Deckner
491a329330 - AddPoses didn't check for the ShowDiskIcon() option when deciding to AddRootPoses.
When changing to icon mode with a size other than 32 (ie: kScaleIconMode) PoseView calls Refresh() and all the poses are 
removed and loaded again (PoseView.cpp line 1995). This called AddPoses but didn't check for ShowDiskIcon(). The Disks icon 
was shown on startup though, since Tracker uses another code path when starting (caching?).

  This fixes #1833.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25941 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-12 18:22:27 +00:00
Michael Lotz
3ba76c1433 Whitespace cleanup. No functional changes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25940 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-12 18:08:52 +00:00
François Revol
12f3292615 - change KLSI init the way it's done by the linux driver
- do not count usb headers as part of count returned by write(), else we might end up writing more than the passed amount :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25939 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-12 13:44:49 +00:00
Stephan Aßmus
1a5c921404 * More WIP cleanup and simplifications
* Fixed another memory leak in NodeRegistered()


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25938 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-12 13:03:05 +00:00
François Revol
dfefaa14f3 Remove \[ \] markers in PS1. They are supposed to contain non-displayable control characters, but gnome-terminal is painfully slow at editting the command line with those...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25937 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-12 11:57:20 +00:00
Stephan Aßmus
471913fbd4 patch by Nate Eagleson:
* The audio and video panes refered to the OS as "BeOS", now it's "Haiku".

Thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25936 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-12 08:46:01 +00:00
Michael Lotz
1751250abf Remove disabling and clearing interrupts again as it doesn't turn out to be a problem.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25935 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-12 08:21:03 +00:00
Michael Lotz
018b0c251c * The StrokeLine() variation that takes a rgb_color did change the drawing
state of the painter without restoring it afterwards (HighColor and
  DrawingMode).
  This function is only used in decorators, but as such it could lead to
  strange effects. When clicking and holding the close button on the R5
  MidiPlayer for example, the background of the scope would suddenly become
  the color of the close buttons middle line. As the drawing mode was also
  overwritten this could probably have lead to text rendering issues when
  zooming applications. As I didn't find a easy way to reproduce such a thing,
  this is only theory though.
* Implement the missing IsExclusiveAccessLocked() method in the DrawingEngine
  which is not used at the moment. If corresponding debug output is generated
  though, it reveals possible locking issues with CopyRegion().
* Remove an empty line in the LineArrayData struct.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25934 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-11 23:49:53 +00:00
Rene Gollent
6559de374d Build fixes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25933 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-11 22:43:07 +00:00
Stephan Aßmus
08c82102cf Work in progress:
* Cleaning up and refactoring the OpenSoundNode code to use a single coding
  style and be less C-like in many places.
* Fixed quite a few memory leaks in OpenSoundNode.
* Removed large chunks of inactive code originating from the MultiAudioNode.
* Transfered some functionality into NodeInput and NodeOutput, could be more.
* No functional changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25932 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-11 22:24:34 +00:00
Alexandre Deckner
b9a5b8236b - Changed BColorControl cellsize to account for the fixes in BColorControl. A rounding error gave the right appearance. see r23671 and r23680. Also, we might want to check the minimum cellsize in R5 and use the same for compatibility.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25931 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-11 20:51:56 +00:00
Alexandre Deckner
82adcce2b7 - BView::MoveBy was letting BView::MoveTo do the rounding after adding
the delta.
  For example, MoveBy(-0.5, 0.0) would do nothing in this case: 
roundf(150.0 - 0.5) = 150.0, when rounding the delta it gives the 
expected value: roundf(150.0 + roundf(-0.5)) = 149. 

  On the other hand, BView::ResizeBy was doing it right, and this 
explains the bug in Cortex (#333). Cortex was doing 
scrollBar->MoveBy(-0.5,0) then scrollBar->ResizeBy(0.5,0) and the 
inconsistency lead to the visual bug. (see StatusView::MouseMoved())

  This fixes #333. The bug was strange to reproduce since sometimes the 
point received in MouseMoved would be "some_integer+0.5" values 
sometimes just integral. This has still to be investigated though not 
problematic here anymore. See cortex/RouteApp/StatusView.cpp line 222.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25930 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-11 19:43:36 +00:00
Rudolf Cornelissen
730ebb158c removed all pre-NV20 refs, removed all TVout stuff except clearing some flags, re-enabled force_ws option, force_ws is now default true, pgm_panel is now default false.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25929 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-11 18:14:15 +00:00
François Revol
bc8b563b74 Use 2KB buffers now, seems to work fine.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25928 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-11 14:59:40 +00:00
Rene Gollent
819eb21bbf Remove (invalid) TODO note. Rename variable more meaningfully. Remove stray whitespace that crept into previous commit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25927 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-11 14:29:59 +00:00
Stephan Aßmus
1b007c20ad Updated supported codec table.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25926 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-11 08:37:00 +00:00
Stephan Aßmus
ad846ea0a9 * Move the global initialization of the xvid core to a static initializer,
only the decoder structure is now initialized per instance, this should
  be better (thread safe).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25925 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-11 08:32:44 +00:00
François Revol
6bead436a6 Fix include for pci.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25924 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-11 01:50:30 +00:00
Alexandre Deckner
abe0b5c858 - MakeViewFor didn't return a view with a good default size when no hintRect was provided (as
in Cortex). This happened only when needing a tabbed view. It will now return a view with the 
most fitting size. This fixes #597



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25923 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-11 01:47:49 +00:00
François Revol
f57b802a6e Debugger stubs for m68k.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25922 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-11 01:26:02 +00:00
François Revol
9f0d1cf39d Remove PAGE_SIZE define for ppc and m68k from kernel private headers. It's not needed there and should be in public header anyway.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25921 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-11 01:16:48 +00:00
Rene Gollent
34380ac48c Tracked down issue with previous commit. For some reason, modifying the passed in parameter's value directly results in a segfault in registrar, and I cannot see why. Thoughts?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25920 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-11 00:32:48 +00:00
Rene Gollent
22aef42481 Revert this change until I determine why it now crashes the app_server when it didn't during my tests.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25919 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 23:25:33 +00:00
Michael Lotz
a0ace2dff6 If the BIOS doesn't give up ownership of an EHCI controller, simply clear the
BIOS owned flag and clear all possibly enabled SMIs. It seems to be common
practice to just ignore this error case, probably because there are enough
broken BIOSs out there that do not correctly hand over the controller.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25918 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 22:35:57 +00:00
Ingo Weinhold
0ee6c1ea21 * TermView does now maintain an additional visible area sized
BasicTerminalBuffer. It synchronizes this buffer with the actual
  terminal buffer and uses it for drawing. This does significantly
  decrease the time the terminal buffer is locked by the window thread,
  and avoids the necessity to do invalidations in Draw() when the
  terminal buffer changed in the meantime.
* When the view detects heavy scrolling of the terminal buffer due to
  lots of continued output, it throttles redraws to one every 0.1s. The
  detection condition might need some fine-tuning -- it's probably a bit
  too strict for most situations.

I guess I'm done now with optimizations. After testing on real iron for
the first time, I'm a little impressed. In the "time seq ..." speed
competition Haiku's Terminal easily beats Konsole by 10 to 20% for 80x25
and by factor 3+ for full screen. And if I interpret the results
correctly 90% of the time is actually used by "seq" itself which seems
to be about 5 times slower than under Linux.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25917 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 22:20:14 +00:00
Rene Gollent
864ace1845 Rework BList's Resize() functionality: instead of altering the size of the list a block at a time,
we now double/halve the current size of the list, starting with the constructor blocksize as a baseline.
This has the net effect that when doing large numbers of inserts/removes, the number of resize operations 
needed scales logarithmically to the number of operations, which should yield a decent performance 
improvement in such cases.

Review welcome. This does not yet affect ticket #2363 that I'm aware of, as I'm currently in the process
of attempting to find a copy of said app to test with.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25916 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 22:10:13 +00:00
Michael Lotz
97403a77f1 * Fix the check after waiting for owner change to happen and don't reset if the
handover indeed worked. Doesn't really matter though, as we reset anyway,
  just not twice in the success case.
* Disable all interrupts and clear any pending active interrupts just after
  taking over the controller. This might fix bug #2361.
* Also trace output when the ownership change is successful.
* Don't disable interrupts during reset.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25915 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 22:07:45 +00:00
Axel Dörfler
0e0d9290e0 I can't believe Urias wasn't mentioned here yet...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25914 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 21:54:35 +00:00
Axel Dörfler
52b5cb5a10 Applied patch by Urias in order to let the PPC port build again.
Temporarily removed the VESA driver, as long as it only builds on x86.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25913 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 21:53:00 +00:00
Ingo Weinhold
90ab7ea343 * Added a SetHistoryCapacity() method.
* Added a ResizeTo() version that allows to set the history capacity at
  the same time.
* Added a SynchronizeWith() method that allows synchronizing with (a
  part of) another buffer.
* Fixed TODO in _Scroll().
* Improved the dirty region update code in _Scroll(). It would in
  certain (not exactly uncommon) situations needlessly invalidate the
  whole screen.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25912 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 21:43:42 +00:00
Ingo Weinhold
540e66d6a6 * Renamed GetReaderBuf() to _NextParseChar().
* Introduced a small (64 byte) buffer for the parser thread. Instead of
  directly reading single characters out of the reader buffer, we read
  a full parser buffer and process the characters from the parser
  buffer. Thus _NextParseChar() could be inlined, since it merely
  consists of a conditional method call and an access to the parser
  buffer, now.
* Improved the locking of the terminal buffer. Instead of unlocking and
  relocking after every multi-byte char or escape sequence, we only
  unlock while refilling the parser buffer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25911 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 21:34:50 +00:00
Karsten Heimrich
ced75fc6b0 * in case we do not show the config window,
still distinguish between config page and config job
 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25910 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 18:47:07 +00:00
Karsten Heimrich
e8991ce3ac * fill the view with it's high color, BPrintJob behaves now like on R5
fixes printing from e.g Scooby (missing header color)

  finally found the missing peace here:
  http://www.freelists.org/archives/haiku-development/06-2008/msg00086.html
  thanks Stephan  :)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25909 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 18:42:47 +00:00
Rudolf Cornelissen
8981fa5d54 removed PIO mode acceleration completely.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25908 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 17:56:54 +00:00