a debugger call in _LaunchInputServer may be overkill, but at least you could
conceivably cleanly restart the machine in the debugger (I think.) Because
without the input_server the machine is pretty useless.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19615 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Tested a bit more, and there seems to be some minor drawing problems.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19568 a95241bf-73f2-0310-859d-f6bbb57e9c96
* In grayscale mode, the AccelerantHWInterface now sets the palette correctly.
* HWInterface now has a fVGADevice set by AccelerantHWInterface which will be used
to talk to the VESA driver.
* Completed planar blitting for all 4 planes; we now have a perfect 16 color
grayscale mode when you choose "Standard VGA mode" in the boot loader with
an unsupported graphics card (such as in Qemu).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19567 a95241bf-73f2-0310-859d-f6bbb57e9c96
* The app_server now detects that this mode is being used, and at least correctly copies
the 32bit data to the first plane, meaning we have a monochrome output for now
(it crashed before, as Stefano reported).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19565 a95241bf-73f2-0310-859d-f6bbb57e9c96
of BFont. You can BFont::SetFalseBoldWidth(float) a width on a
BFont object, and it will cause the glyph shapes to be run through
an AGG "contour converter" so that they become thicker or thinner.
IIRC, this is commonly referred to as "false bold". The "width" value
is the distance in pixels that the new glyph outline will be offset
from the original outline.
It would be nice if someone could look at my change to View.h with
regards to the B_FONT_ALL flag.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19547 a95241bf-73f2-0310-859d-f6bbb57e9c96
so that we can draw the window borders using parallel access too.
Seems to improve things even further, using the app_server environment
with direct accelerant access on R5 looks pretty decent now, but
of cause still far from perfect. The global font lock could actually
be the problem now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19528 a95241bf-73f2-0310-859d-f6bbb57e9c96
Seems to make some difference too. Nothing dramatic though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19527 a95241bf-73f2-0310-859d-f6bbb57e9c96
For those wondering "mark_as" is the directory for the MarkAsRead and MarkAsNew
Tracker add-ons I'm planning to add (for email.) If anyone is violently
opposed to this idea, speak now.
The WorkspacesLayer change was mostly an update to existing and ifdef 0'd
code so it would compile under ifdef 1. I left those changes and just set the
ifdef back to 0 here.
The other changes below were debugging and build changes that definitely were
not needed in the repository.
The undocumented changes in the last submission include some new keyboard
shortcuts in ShowImage as well as various changes to the input server and
roster as part of my ongoing work on those. I will clean this up some more
and make another submission in a few hours.
Note to self: never submit from a high-level directory...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19480 a95241bf-73f2-0310-859d-f6bbb57e9c96
these for other people, but they wouldn't compile for me when building the
app_server test environment.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19479 a95241bf-73f2-0310-859d-f6bbb57e9c96
LockExclusiveAccess() (meaning more or less access to the
frame buffer)
* extracted the AGGTextRenderer to be a global instance used
by each Painter instance (currently, it is thread safe because
of the global font lock, so there is some work left in this
regard)
* gave every ServerWindow it's own DrawingEngine instance, this
is work in progress. So far, there doesn't seem to be a regression,
but less fighting over the exclusive access to the frame buffer, now
each ServerWindow thread can draw in parallel. There is room for
improvement, plus I think I'm leaking the DrawingEngine...
* changed the locking for the software cursor. ShowSoftwareCursor()
can only be called if HideSoftwareCursor(BRect) returned true, or
if you called the generic HideSoftwareCursor(), since it needs
to keep the cursor lock and unlocks in Show...!
* some clean up and renaming in Decorator and friends
* moved PatternHandler.h to live along with the .cpp
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19427 a95241bf-73f2-0310-859d-f6bbb57e9c96
was a stupid oversight, and should improve the responsiveness of the UI under load
a lot. Thanks Stefano!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19398 a95241bf-73f2-0310-859d-f6bbb57e9c96
changes in the HWInterface (ie on mode switch)
* initialization and shutdown of the HWInterface instance no longer
go through DrawingEngine, which had nothing to do with it in the
first place
(this is in preparation of giving each ServerWindow it's own
DrawingEngine instance)
* small performance improvement in ViewLayer::ScrollBy()
* some cleanup in ServerConfig.h
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19391 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
or something else, but I don't think the change is bad (changed
ServerProtocol.h from a local header to a system header)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19388 a95241bf-73f2-0310-859d-f6bbb57e9c96
various places. Implemented SetLineMode op for BPicture, fixed shape
drawing (I accidentally broke it in the previous commit).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19264 a95241bf-73f2-0310-859d-f6bbb57e9c96
Hopefully fixed all the problems. Reported by
Marc Flerackers.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19241 a95241bf-73f2-0310-859d-f6bbb57e9c96
* BMenuWindow now makes its menu focus view, so that it can receive key events.
* Keyboard navigation doesn't work as it should though, that is bug #670 is
still valid - there should even be another recently opened bug about this,
but Trac obviously ate it :-/
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19152 a95241bf-73f2-0310-859d-f6bbb57e9c96
the pen size). Added scale handling. Removed duplicated AS_SETPENSIZE
handler in ServerWindow
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19130 a95241bf-73f2-0310-859d-f6bbb57e9c96
doing it here is not only superfluous, it would also cause to lose the window when switching
to a workspace where the window is not visible and back while dragging it around.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19076 a95241bf-73f2-0310-859d-f6bbb57e9c96
* the app's Activate() method was called unsafely; the ServerApp pointer could
have become invalid in the mean time.
* when hiding a floating window (because its parent got hidden) that had focus
or even was the mouse event window (was currently dragged over the screen)
the focus was not moved to another window.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19075 a95241bf-73f2-0310-859d-f6bbb57e9c96
if read or write); there are some methods that cause a locking of the font
manager (like ServerFont::SetFamilyAndStyle()).
This fixes bug #885.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19051 a95241bf-73f2-0310-859d-f6bbb57e9c96
with regards to drawing bitmaps with alpha channel, instead
of ignoring the bitmap alpha channel, it is further multiplied
with the high color alpha channel, so basically, you can
use the high color alpha as a "global" alpha value to
draw the bitmap with
* removed some duplicate code
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18843 a95241bf-73f2-0310-859d-f6bbb57e9c96
over the mouse cursor. The problem is actually something else:
non-straight lines extend a little past the calculated rectangle
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18842 a95241bf-73f2-0310-859d-f6bbb57e9c96
got fixed twice, any unoptimized lines were drawn at
a (0.5, 0.5) offset
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18841 a95241bf-73f2-0310-859d-f6bbb57e9c96
(this would fix the white background on disabled looking
icons if Tracker would still use B_CMAP8 icons)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18840 a95241bf-73f2-0310-859d-f6bbb57e9c96
a concurency problem in the DrawingEngine, so there is some debugging
stuff added, as well as some unnecessary locking removed there. The
problem was in Painter though, in that certain functions adjusted clipping
at the "rasterizer level", while some other functions didn't care about
that. Now the clipping is consistently set at the rasterizer level (rough
estimate to avoid scanline generation outside real clipping region bounds).
There are a number of bugs fixed by this, I'm going to find out later,
what their ticket numbers are... Mouse preflet draws the mouse now,
Backgrounds preflet draws the screen reliably... probably more, anything
to do with bitmaps, round rects and possibly ellipses.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18828 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Removed the DesktopSettings lock itself - it's not really needed at all,
and causes some trouble with a clean locking design. This may even have
fixed bug #757, at least I couldn't reproduce it anymore.
* There is now a class for read-only access that requires you to have locked
the desktop (either read or write).
* There is now another class LockedDesktopSettings that allows you to set
settings (and only that) - when you're changing the settings, you must not
have read locked the desktop (ie. hold the single window lock). The class
will obtain a write lock, but write locks can be nested.
* Moved SetWorkspacesCount() into the Desktop class.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18646 a95241bf-73f2-0310-859d-f6bbb57e9c96