Commit Graph

1692 Commits

Author SHA1 Message Date
Axel Dörfler
3870c9f18f Improved quit mechanism (for the last time): if an application had open
windows that wouldn't quit on demand, the app_server would have gotten
the kShutdownServer message anyway already (as the last app was quit).
Since that one removed things like gDesktop/gBitmapManager, it liked
crashing.
Now, there is a semaphore that will be send to each app on quit. Only
when this semaphore can be acquired, the shutdown message will be sent.
Removed unused semaphores (decorator, active app).
Replaced fAppListLock with a BLocker (just calling acquire_sem() without
error checking is very unsafe in userland, and should never be done).

BTW the bug was triggered by broken menu code that only sometimes
really quit the window; it leaves a whole lot of zombies around - Stefano,
any quick idea? :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13384 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-01 10:09:11 +00:00
Axel Dörfler
37fa302a92 Also commented some unimplemented message handler to not break the reply mechanism.
The ServerWindow did not even have such a mechanism anyway... (it now has).
Minor cleanup, replaced some "delete" with "delete[]" where appropriate.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13382 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-01 08:50:45 +00:00
Axel Dörfler
1e1b96cdc1 Rather than a "case message: /* unimplemented */ break;", we should not
handle the case at all to give the server the possibility to send a
failure response - ifdef'd some code out.
Added comment to ServerApp::PingTarget(), because what it currently does
does not make any sense.
Minor cleanup (replaced fSignature.String() with Signature()).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13381 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-01 08:48:51 +00:00
Axel Dörfler
1786706696 You're not supposed to delete bitmaps yourself; you have to let the
bitmap manager do the job.
This fixes a possible crashing bug on quit, a giant memory hole, and
probably also a possible crash during runtime.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13380 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-01 08:10:42 +00:00
Axel Dörfler
5712a788a1 WorkspacesLayer now makes use of DisplayDriver::ConstrainClippingRegion() in
order to flicker less (which works, but it's not really that nice yet, as
it currently only works for the background).
The workspaces layer is now also invalidated if a new window appears on the
screen or goes away (also when this happens in another workspace).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13379 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-01 07:58:22 +00:00
Axel Dörfler
24a146d4f6 Small hack to get to know the code a bit better.
A view-only workspaces window support (with lots of drawing flicker) - this
means you see what happens in the workspaces, but it doesn't do anything if
you click on it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13378 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-01 06:53:07 +00:00
Axel Dörfler
f598d348b1 A window thread is now called "w:<title>" instead of just "<title>".
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13376 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-01 06:44:39 +00:00
Axel Dörfler
b7596f59ec AS_LAYER_GET_STATE no longer sends stuff that doesn't belong to the layer's state.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13335 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 23:03:28 +00:00
Axel Dörfler
3783821c25 Fixed B_CONTROL_HIGHLIGHT_COLOR/BORDER_COLOR. Changed highlight color from Dano value
to something for R5 (ie. what DiskProbe is using).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13333 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 21:52:32 +00:00
Axel Dörfler
80a230b10e Rewrote the push/pop state and ViewAttr stuff:
- it now seems to work finally correctly
- renamed ViewAttr to ViewState and put it into the BPrivate namespace
- some refactoring (moved some private BView methods to ViewState)
- renamed AS_LAYER_MOVETO/RESIZETO to *_TO (note the underscore)
- exchanged BView::originX/Y with fParentOffset (BPoint)
- divided AS_LAYER_GET_COLORS into separate ones for high/low/view color
- BView::SetPattern() now actually works as expected (ie. updates
  only if necessary)
- exchanged the ViewAttr::flags with ViewState::valid_flags which inverses
  the previous logic (which wasn't even used consistently)
- fState was initialized twice (incorrectly by the ViewAttr constructor,
  and then again correctly by initCachedState()) - now the ViewState
  constructor does the job alone, but correctly
- BView::PushState() no longer resets the state (it did so only locally
  anyway...)
- cleanup


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13325 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 18:56:55 +00:00
Adi Oanca
f97b5cb586 Moved CopyBits from ServerWindow to Layer. Also, made CopyBits code execute in RootLayer's thread
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13321 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 15:34:54 +00:00
Adi Oanca
1302949204 Layer::Show/Hide now works. Improved some invalidating calls. fixed some potential problems
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13317 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 14:57:16 +00:00
Ingo Weinhold
3c0a815896 The registrar now uses BServer instead of BApplication, which makes it
completely independent of the app server.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13316 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 14:55:57 +00:00
Adi Oanca
ecf3bc3eb4 moving and resizing windows works with the new clipping code. scrolling BViews also works.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13311 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 12:25:32 +00:00
Axel Dörfler
a87826801c Added workaround for current stability problems of the app_server: giant lock,
say hello to RootLayer.
Adi will probably not like this, but that's definitely only a temporary solution :-)
This little fix greatly increases app_server stability under Haiku - ie. menus
are working now, the team monitor comes up regularly, etc. - how great is that?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13305 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 03:23:16 +00:00
Axel Dörfler
276aa135a7 The size limits are now correctly enforced on window creation, ie. the ResizeLimits
test application now works as it should.
DefaultDecorator::GetSizeLimits() did work correctly, there was no need
to have extra protection limits.
Enabled Stephan's automatic resize code on BWindow::SetSizeLimits() again, and
added a short comment why I think R5's behaviour is just a bug/leftover.
Moved guts of ResizeBy() into _ResizeBy() that doesn't send the update message
to the client, and is now called in the constructor to make sure the border
size is within limits. Also made it work there, as fTopLayer is NULL in that
environment.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13304 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 02:00:48 +00:00
Axel Dörfler
85bd83a710 AS_CREATE_WINDOW now also gets the actual frame width and size limits of
the window on server side - ie. if the app_server could not create a
window of the size requested, BWindow::fFrame will still be correct
(and the size limits will mirror actual decorator limits).
Renamed fMinWindHeight and friends to fMinHeight and so on.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13302 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 01:14:39 +00:00
Axel Dörfler
c17904c587 The B_WINDOW_RESIZED message now looks exactly like it does under R5, ie. has a "when" field, too.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13300 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 00:53:41 +00:00
Stephan Aßmus
f8570b7199 substract the border width from minSize, as that is the inner width of the window
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13298 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 00:34:51 +00:00
Stephan Aßmus
063f418c53 made room for a new meaning of BitmapBuffer, it will be used for a RenderingBuffer class that wraps arround a ServerBitmap. BBitmapBuffer on the other side is handy as well and wraps arround a BBitmap, as BitmapBuffer did before.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13297 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-27 22:11:27 +00:00
Stephan Aßmus
203661c9d0 svn does not do what I want before I commit this... It's going to be renamed
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13296 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-27 21:53:17 +00:00
Stefano Ceccherini
9f5ffc2c3c Fixed BFont's GetTunedCount() and IsFixed()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13293 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-27 15:44:47 +00:00
Axel Dörfler
08d9a6e30d Some minor work on minimum window sizes. A WinBorder now makes sure it has
a valid size on construction; DefaultDecorator should do that as well.
ServerApp AS_CREATE_WINDOW now makes sure it passes a valid rectangle to
ServerWindow's constructor.
Smaller default size for Layers that have been created with an invalid frame.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13291 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-27 02:06:15 +00:00
Stephan Aßmus
18cbc4ff3d Using the read locking in DisplayDriver was a bit early. Painter itself is not thread safe, so while we use the HWInterface lock for locking, we can only do read locking once each window has its own Painter instance. I'm still investigating this possibility. It depends on the memory foot print of painter, of which I don't have a clear idea yet. Anyways, this quick change fixes Adis problems and is required at this time anyways. Sorry for the inconvenience.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13278 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-25 22:56:24 +00:00
Adi Oanca
e3fbc7752f integration of the new clipping code continues
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13277 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-25 15:45:58 +00:00
Stefano Ceccherini
d06e1bff11 Fixed array initialization.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13276 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-25 14:13:30 +00:00
Stefano Ceccherini
89d0b3cdad Safer code
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13275 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-25 13:58:55 +00:00
Stefano Ceccherini
55b222b0b0 Stephan already implemented the needed support for dpms stuff too, so why not implementing the client methods too?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13274 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-25 13:53:48 +00:00
Adi Oanca
e603410b82 - simplified a little the update code/process.
- moved part of the update code from Layer to WinBorder. Fits better
there.
- renamed a couple members.
- some cleanup.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13273 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-25 13:09:19 +00:00
Adi Oanca
b62270533e removed a printf
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13272 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-25 08:47:51 +00:00
Adi Oanca
94fa2bd256 inlined a few methods in header file, otherwise app_server would not build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13271 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-25 08:45:00 +00:00
Stefano Ceccherini
75de27f83b more BScreen related stuff
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13270 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-25 06:30:09 +00:00
Stefano Ceccherini
583f6c3eba Added server side support for BScreen::ProposeMode(), fixed client side too.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13269 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-25 05:58:43 +00:00
Stefano Ceccherini
c641898150 implemented client/server side support for BScreen::GetDeviceInfo() and WaitForRetrace(), and (only client side) support for Bscreen::ProposeMode()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13266 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-24 18:02:01 +00:00
Axel Dörfler
0ec4af2233 Improved AreaPool to have an initial size as well as well as a name that is
used for new area.
MemPool::AddToPool() now gracefully deals with NULL pointers (or a size of 0).
BitmapManager was deleting the area it transferred to AreaPool before - it
no longer needs an extra area, though.
Minor other cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13260 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-24 04:01:16 +00:00
Axel Dörfler
b5436616a3 Fixed some style related functions and other oddities in FontServer.
Also applied our style guide on that class.
Renamed some public globals to match our style guide.
Made BitmapManager inherit from BLocker instead of duplicating its
functionality (incorrectly, did not check for B_INTERRUPTED) locally.
Some more cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13259 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-24 03:31:41 +00:00
Axel Dörfler
5029b563fd Fixed pretty much broken AreaPool - I am not sure this class is that a good idea, anyway.
area_for() is not the cheapest call; the user better knows the area and deletes it directly.
Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13257 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-24 02:13:32 +00:00
Stephan Aßmus
2949ed1def Thou shalt compile before thou commitst.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13253 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-24 00:14:19 +00:00
Stephan Aßmus
3dcb3b079a Added some root layer locking in ServerWindow.cpp when accessing the layer tree. Moved HWInterface management out of DisplayDriverPainter and into Desktop. Removed all the directly hardware related functions from DisplayDriver API. They just called the same HWInterface functions. Now DisplayDriver is much cleaner and ready for being attached to a yet to be written BitmapHWInterface. Clean up of the display mode stuff in Screen and the View-/AccelerantHWInterface. Frequency is now regarded on Haiku. AccelerantHWInterface::GetModeList now works before SetMode has been called. Added MultiLocker from the sample code. HWInterface uses it now in preparation to being used from multiple instances of DisplayDriver.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13252 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-23 23:46:17 +00:00
Axel Dörfler
1b53e8af26 The app_server now cleans up better after a team crashed; not only the
application and bitmaps are removed, the team's windows are now removed
as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13251 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-23 23:21:10 +00:00
Stephan Aßmus
c69d4b2719 clean up, bug fixes and more robustness
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13249 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-23 23:14:40 +00:00
Stephan Aßmus
ee9b01a01a made the pool allocator thread safe
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13248 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-23 23:13:09 +00:00
Axel Dörfler
ce1639b2bf Some more cleanup:
- replaced fMsgSender/Receiver with a BPortLink fLink
- moved message loop into non-static method _MessageLooper()
- renamed Zoom()/Minimize()/Quit()/ScreenModeChanged() to Notify*(), and
  Quit() to NotfiyQuitRequested() to make more clear what they do (they
  don't operate on ServerWindow, they just notify its client)
- less insane way to init a window: there is no longer the constructor
  and a separate method Init(); now there is the constructor (which
  fully sets up the window), InitCheck(), and Run() which runs the
  window's message loop
- moved the quitting stuff into a separate method Quit() and made
  it callable from other threads.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13247 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-23 22:43:11 +00:00
Adi Oanca
4801a9a97d Fixed the problem Axel signaled with hidden views
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13246 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-23 21:23:01 +00:00
Adi Oanca
8734d03e14 removed 3 printf(s) that I intruduced in my last checkin
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13244 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-23 19:30:29 +00:00
Axel Dörfler
a38e46a046 ServerApp now maintains a list of all windows, ServerWindow's AS_DELETE_WINDOW
will update it automatically.
Renamed ServerWindow::fName to fTitle, made it a pointer - it will now just
adopt the title pointer that came from AS_CREATE_WINDOW.
Just another cleanup round: renamed Layer::GetName() to Name(), no
more layer->fName->String() accesses.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13239 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-23 18:48:10 +00:00
Axel Dörfler
fcb006dcf5 Rewrote how the app_server and ServerApp's quit. As a side effect, the server
can now quit instantly.
AppServer must no longer call ServerApp's destructor once it's running - it now
has to call Quit() in this case. The ServerApp is now destructed in its own thread.
Some cleanup (like renaming ServerApp::MonitorThreadID() to Thread()).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13238 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-23 17:40:35 +00:00
Axel Dörfler
2e86adec11 Implemented AS_GET_MODE_LIST server side.
Fixed broken ViewHWInterface::GetModeList() - it did not correctly write into
the allocated memory. Also extended it to be more flexible, has better timing
values, and more resolutions.
ViewHWInterface::SetMode() will now check if the requested mode is in its
list of supported modes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13226 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-22 18:14:13 +00:00
Adi Oanca
3df649ecb3 managed to show/hide empty windows with the new clipping code
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13221 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-21 20:11:44 +00:00
Stefano Ceccherini
3255e7df2c I hope no one believed that these methods could've really been inlined...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13216 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-20 10:33:34 +00:00
DarkWyrm
550d6a5375 Cleanup for decorator management code
Updated a couple headers
Moved all decorator code to ServerApp where it belongs
Modified AppServer::Broadcast to allow ServerApps send messages to all apps without having to have a global AppServer instance


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13204 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-17 19:10:15 +00:00
Axel Dörfler
1b5aeb312e Renamed class FMWList to SubWindowList. Cleaned up SubWindowList a bit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13203 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-17 16:34:22 +00:00
Stephan Aßmus
2734243aca Preparation of more correct support for state stack.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13201 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-17 13:20:45 +00:00
Jérôme Duval
587e093725 reworked registrar launch wait, avoids snoozing
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13193 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-16 22:30:50 +00:00
Adi Oanca
5fcce1f54b renamed a few members so that I don't have problems later. removed more methods/members
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13190 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-16 20:43:53 +00:00
Adi Oanca
e0911bbb29 yes, yes... removing unneeded methods/members.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13188 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-16 19:44:55 +00:00
Adi Oanca
83265d84db More work for integrating the new clipping code.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13186 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-16 18:58:14 +00:00
Stephan Aßmus
faaa62c751 update cached HW acceleration flags on mode changes. Fixes HW acc on ATI after Axels changes. Axel, is it working on Matrox as well now?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13180 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-16 15:10:24 +00:00
Stephan Aßmus
54cc0f1b56 reverted some unintentional changes
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13179 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-16 13:07:36 +00:00
Stephan Aßmus
99b9d5ac8a a new state begins life as a copy from the previous state, fixed Scale(). Note that BoundsOrigin() (and therefor Scale()) is called _a lot_ so we should cache the value! I started to work on this, but our lack of encapsulation strikes again... Layer::fLayerData is used directly all over the place.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13172 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-16 12:32:42 +00:00
Axel Dörfler
53442520cc Fixed a bad bug in the app_server:
fCurrentLayer was used to determine to which layer a new one would be
added to, but BView::AddChild() would only set this correctly for the
current view, ie. all children of the new child were added to the
wrong layer in the app_server.
Now, AS_LAYER_CREATE sends the parent's token to the server, and the
server relies on this to build the layer hierarchy.
All of a sudden a lot of hidden views are visible now. I noticed the
bug while refactoring the task manager, but a lot of apps were affected.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13164 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-16 00:46:02 +00:00
Adi Oanca
d41a1e80b8 Integrated the new clipping code. It compiles but it does not work yet. Do not worry, it's guarded by a #define :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13161 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-15 20:36:43 +00:00
Adi Oanca
0f0232c767 Started adding new clipping code - not active ATM. Removed Virtual prefix
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13159 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-15 19:01:43 +00:00
Adi Oanca
524c020956 Bounds() takes into account previous pushed states
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13157 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-15 18:47:41 +00:00
DarkWyrm
e67e7dd995 Some cleanups to ColorSet in anticipation of future cleanups for Appearance app
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13156 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-15 17:20:17 +00:00
Stephan Aßmus
cf5ff0c0d0 fixed memory corruption in the stuff I added to moreUTF8. This fixes GetEscapement crashes. The rest of the file needs reviewing as well, but I wanted to commit this ASAP
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13155 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-15 17:09:00 +00:00
Axel Dörfler
dd10337fd0 Renamed BAppServerLink to AppServerLink, BPortLink to PortLink, LinkMsgReader
to LinkReceiver, LinkMsgSender to LinkSender, and put everything into the
BPrivate namespace.
Made AppServerLink a cheap object - it will use the applications receiver/sender
and not create its own buffers.
Fixed broken communication stuff here and there (mostly Font.cpp).
Put the newly introduced set|get_system_colors() into the BPrivate namespace -
please don't introduce private functions into the public namespace!!!
Also fixed their broken communication use, as Darkwyrm obviously forgot about
it again: the sequence Flush(); GetNextMessage() without error checking is
purely wrong and can make the app hang and/or crash! :-)
Other minor cleanup.
The input_server used some test mode with the haiku build target which is
probably wrong.
Hopefully I did not forget anything this time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13128 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-14 21:28:56 +00:00
DarkWyrm
57bbc53987 Moved some system colors code to be monitored by a client's ServerApp
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13123 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-14 19:48:30 +00:00
Stefano Ceccherini
6deb7c6749 Documented the public methods, changed the file description
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13111 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-14 07:29:16 +00:00
Stephan Aßmus
75d26e104a fInitialized is also set in the copy constructor. BTW, the Haiku Logo is displayed now (forgot to commit this earlier). Thanks to Axel for finding out about this.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13110 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-14 00:38:21 +00:00
Axel Dörfler
6262418e6a fInitialized was never set to "true", so InitCheck() could never succeed.
Also fixed _AllocateBuffer() to handle out of memory situations gracefully.
It should probably also have upper limits with regard to the bitmap size.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13109 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-14 00:12:45 +00:00
Stefano Ceccherini
3a27ae791e Added server support for activate_workspace(). Looks like it's not doing anything, though SetActiveWorkspace() returns true....
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13103 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-13 22:11:29 +00:00
Stefano Ceccherini
eef16dda7d implemented server support for current_workspace(), just because I had enough of the 'blablah got unknown reply' message
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13102 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-13 21:54:11 +00:00
Axel Dörfler
aadb0f6bb8 The acceleration hooks are now set after a SetMode(), and get a display_mode as parameter
as required by the interface.
Unfortunately, this doesn't help the slow window moving with Rudolf's drivers.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13099 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-13 17:42:52 +00:00
Stefano Ceccherini
d039af7469 Reverted to the previous algorithm, which is just another version of the same one: they produce slightly different results, but this one should be faster as it doesn't use divisions.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13097 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-13 15:29:08 +00:00
Stefano Ceccherini
44bb301774 Improved some more.
Why were the components or'ed with 5 ?

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13096 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-13 14:42:06 +00:00
Stefano Ceccherini
6ec6f3f831 Better color distance-measuring algorithm, taken from here:
http://www.stud.uni-hannover.de/~michaelt/juggle/Algorithms.pdf.

Still not 100% identical to be's one, but much closer.
Small cleanups.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13091 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-13 13:22:50 +00:00
Stefano Ceccherini
1f1ed1c62c Generate the inversion map.
Note that the inversion_map and the index_map aren't the same as in Beos, due to bugs (or different behaviour) in color_distance.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13086 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-13 10:28:51 +00:00
Stefano Ceccherini
509db2a318 Generate the index map using some code stolen from BBitmap. The Mandelbrot sample app starts looking good. Only the inversion map is missing now
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13079 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-13 05:03:42 +00:00
Stephan Aßmus
9851ab5c1e The Haiku Logo is displayed on the Desktop. :-) Of course this will be removed as soon as Tracker runs. If you don't want it, you can disable it in RootLayer.h. Fixed a clipping bug with text rendering.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13057 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-11 13:00:17 +00:00
Adi Oanca
b81c5513c5 addapted code as a result of removing viewColor, background and overlay bitmap members from LayerData
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13051 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-10 16:20:38 +00:00
Stefano Ceccherini
2c9931e911 no more friends for ServerWindow... Poor ServerWindow
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13048 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-10 15:56:55 +00:00
Stefano Ceccherini
7cb5e7b146 removed another friendship
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13045 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-10 15:50:24 +00:00
Stefano Ceccherini
e1bc5f2def Added Layer::Push/PopState() and moved their implementation from ServerWindow.cpp. We definitely need more encapsulation
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13043 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-10 15:28:34 +00:00
Stefano Ceccherini
f1496739a3 removed AS_SET_SCREEN_MODE handler
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13040 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-10 08:29:49 +00:00
Stefano Ceccherini
2ed35bc88c Thanks to Axel's change, now we can pass the app_server's colormap to libbe. Methods like BScreen::ColorMap() and BScreen::ColorForIndex() work.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13023 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-09 04:36:00 +00:00
Axel Dörfler
e60b1ff1d8 Reserved space for the close and zoom buttons, even if they were absent.
Hack workaround: enlarged the text width a bit, because the title often appeared
truncated for no apparent reason.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13012 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-08 14:35:25 +00:00
Axel Dörfler
3ba7d6f350 Added AS_{GET|SET}_DESKTOP_COLOR.
(Incorrectly) implemented AS_GET_DESKTOP_COLOR - works for now.
Minor cleanup.
Is AS_SET_SCREEN_MODE used at all?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13010 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-08 13:24:40 +00:00
Axel Dörfler
bd28b3c746 BAppServerLink is now using BApplication::fServerTo/From for its messaging.
Added LinkMsgReader::NeedsReply() method.
Completely redone ServerApp messaging: no more "replyport" from BAppServerLink; instead,
the registered client reply port is used. Fixed some more weak messaging stuff.
ServerApp now recognizes if an unknown message needs a reply, and sends it - for example,
the "Screen" preferences app no longer hangs, but crashes on start :)
Made LinkMsgReader::Read() virtual again, since it's needed by RAMLinkMsgReader.cpp.
Renamed BPortLink::GetNextReply() to GetNextMessage().
Some more cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13004 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-08 04:01:59 +00:00
Axel Dörfler
0aa69a9cd4 Fixed the crashing bug when quitting the app_server.
The display driver is now owned by the Screen object.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13002 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-08 01:40:22 +00:00
Axel Dörfler
d673482488 Under Haiku, the "stub" driver is called "vesa", so we're trying to use this one.
Note, the special case can go as soon as we've moved the driver over to the new
driver architecture.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13001 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-08 01:39:14 +00:00
Axel Dörfler
75936a02e4 BPortLink now has a FlushWithReply() method itself.
BPortLink::AttachString() now accepts a length argument, and will no longer
send a terminating null byte; LinkMsgReader::ReadString(), however, will
make sure the string read is null terminated.
Changed client communication code to use FlushWithReply() instead of Flush()
and GetNextReply() - there were many bugs and shortcomings in the code, I
hope I've fixed them all.
Converted ClientFontList.cpp to our coding style (but not completely, the
class members are missing).
Some more cleanup - I hope Adi will adopt our coding style one day!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12998 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-08 00:36:26 +00:00
Stefano Ceccherini
7475dcdf3a Added an app server command to retrieve the color map. Made some adjustments to SystemPalette.cpp, implemented support for it in BPrivateScreen. Moved get_scs() a bit down to avoid a deadlock. Note that getting the colormap doesn't work due to port capacity limit (?)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12996 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-07 21:32:24 +00:00
DarkWyrm
47a1e5d189 Implemented the settings functions
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12966 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-07 01:29:12 +00:00
Stephan Aßmus
457820a6ef quick fix for windows resizing/moving at fractional offsets, fix for bitmap drawing placement, small clean ups
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12961 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-05 22:02:25 +00:00
Stephan Aßmus
6a2575c9d2 fixed resizing of hidden windows
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12953 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-04 11:18:30 +00:00
Stephan Aßmus
f9e3895bf2 added tracing to some messages
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12952 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-04 11:17:30 +00:00
Stephan Aßmus
59345e264f huge cleanup, support for SetSizeLimits, support for truncating strings, numerous decorator bug fixes, Layer does not draw when view color is B_TRANSPARENT_COLOR, cleaner dispatching of mouse events to the WinBorder in RootLayer, commented the char map selection in the font server, as it seems glyph lookup by unicode index works much better with the default map
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12945 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-03 19:50:30 +00:00
Stephan Aßmus
e4f0f510a9 added support for non-antialiased text rendering, cleanup in AGGTextRenderer
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12944 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-03 19:33:11 +00:00
Stephan Aßmus
7aca21e6bf added const to some operators
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12943 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-03 19:31:26 +00:00
Stephan Aßmus
11f97ed147 large cleanup, should have fixed some memory leaks too
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12942 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-03 19:30:32 +00:00
Stefano Ceccherini
45ca1c948c Simplified code for BView::ClipToPicture() a lot (both server side and client side). Regions passed with that method should take the place of regions passed with BView::ConstrainClippingRegion(). Note that the needed server support hasn't yet been implemented.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12939 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-03 14:20:10 +00:00
Jérôme Duval
5afe056c71 added a snooze, input_server is well started by app_server this way
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12924 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-01 22:41:22 +00:00
Stefano Ceccherini
f39e1df2de delete -> delete[]
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12918 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-01 08:55:39 +00:00
Axel Dörfler
11a2999d10 Now also prints the area offsets next to the instruction pointer so you don't have
to enable debug output in the runtime linker and still have to compute the offsets
manually.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12900 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-30 12:22:34 +00:00
Axel Dörfler
c88974d026 The app_server now updates the kernel's blue screen frame buffer on mode changes
(only the accelerant HW interface does this for now).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12897 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-29 20:23:00 +00:00
Axel Dörfler
b2c1ecd640 Added patch originally written by Ingo Weinhold:
- extended libdebug.so functionality to be able to get stack frames,
  current instruction pointer, etc.
- changed the debug_server to be able to run as a simple BLooper - this
  saves some trouble when the app_server dies
- the debug_server now prints out a stack crawl for the crashed team
  (without symbols, though - for that data to be helpful you should
  have a look at the loaded images (ie. where they start))
- the debug_server now also prints the team name when it kills it


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12882 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-29 00:44:51 +00:00
Marcus Overhagen
697bc06297 removed openbeos plugin directory
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12881 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-29 00:42:44 +00:00
Stefano Ceccherini
19e4729202 Uncommented SendMessageToClient, as it's used in test mode.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12869 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-28 16:58:25 +00:00
Stefano Ceccherini
8380e999e7 better error checking in Run()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12866 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-28 14:00:15 +00:00
Stefano Ceccherini
6390df8e27 Made app_server a static, renamed desktop to gDesktop as it's a global, RootLayer now uses its own fDesktop internal member instead of the global one. Fixed a typo in some commented code (thanks Axel)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12864 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-28 13:43:13 +00:00
Stefano Ceccherini
7f2831b56b Removed a couple of friendships, commented/removed unused stuff
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12863 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-28 13:20:05 +00:00
Axel Dörfler
2724858b5b Added global app_server port, so that other parts of the server don't have
to search for it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12859 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-27 13:36:05 +00:00
Axel Dörfler
a4ad43aa83 Fixed some more cases of "error != specific error ==> everything alright, then".
Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12858 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-27 13:34:52 +00:00
Stefano Ceccherini
5e9441bed9 Removed leftovers
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12857 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-27 10:57:25 +00:00
Axel Dörfler
d7c08b7d2e Tried to make the ServerApp aware when a client dies: the main communication
port is now transferred to the client, so that it goes away automatically.
Unfortunately, this doesn't seem to work. This code is truly a big mess :-/


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12846 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-26 15:06:31 +00:00
Axel Dörfler
280d1aac5b Tried something, didn't work, some cleanup left.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12845 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-26 15:04:45 +00:00
Axel Dörfler
0c7e8ef8f4 Renamed "cl" to fCurrentLayer.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12842 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-26 13:56:42 +00:00
Axel Dörfler
e5b4782b4e Made some necessary enhancements to class Screen; the app_server also
has to care about refresh rates. Also changed Screen::GetMode() (formerly
Resolution()) to return all interesting values, so that hopefully no one
will call it anymore like RootLayer::SetScreens() did.
Greatly improved the horrible RootLayer::SetScreens().
The app_server is now able to deal with failing HWInterface::SetMode() calls;
in this case, it will fall back to the hardware's current mode. This now
also works correctly in combination with the vesa driver, so that you don't
have to compile the app_server with the same resolution you boot in anymore.
SetMode() now always returns if it succeeded or not.
Renamed RootLayer::fScreenXYResolution to fScreenWidth/Height respectively.
Removed the useless DisplayDriver::DisplayMode() method.
Added B_GET_DISPLAY_MODE to the required accelerant hooks.
Some minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12831 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-26 09:21:51 +00:00
Stephan Aßmus
d593ad8f06 added a little debugging facility for printing on-screen debugging info on Haiku. For those like me without serial debugging... also made RootLayer use the desktop background color.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12819 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-25 23:59:23 +00:00
Stephan Aßmus
74994d1307 added license headers
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12817 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-25 23:47:05 +00:00
Stephan Aßmus
55d6f1b792 Many efficiency improvements to text rendering. Moved stuff from Painter into AGGTextRenderer which didn't belong in Painter. AGGTextRenderer now has an embedded transformation, which expresses the font rotation and (in future) shear settings. Removed direct support for BBitmaps from Painter (supposed to draw ServerBitmaps). Tested drawing of bitmaps other than B_RGB32. (only B_CMAP8 and B_GRAY8 so far, but they work). Right now, these colorspaces are supported by on the fly conversion. So every colorspace supported by BBitmap::ImportBits() should work, which are a lot more than the R5 app_server can display.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12815 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-25 18:20:45 +00:00
Axel Dörfler
b368a1cb0b Never (!) only ask for a specific error code, and assume everything went okay if it isn't reported.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12805 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-25 01:51:13 +00:00
Axel Dörfler
8adcce5097 If the accelerant of a graphics device could not be opened, initialized, or had
missing required hooks, it's now unloaded (and uninitialized if necessary)
correctly, the device is closed, and the next one will be examined.
Not deeply tested, but seems to work.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12804 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-25 01:35:38 +00:00
Axel Dörfler
afbbdf7ce5 Applied a patch from Stippi to temporarily fix a drawing problem the hard way.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12799 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-24 15:37:26 +00:00
Adi Oanca
89d4bfbf2a Added initial support for BView::SetMouseEventMask(). Buttons appear to be working well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12789 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-23 17:23:20 +00:00
Stephan Aßmus
ac167e6ead Various fixes and efficiency improvements to the drawing backend. Among other stuff, stroked lines with a width greater than 1 have anti-aliased butts now. There are some bugs left regarding text rendering.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12761 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-22 12:12:56 +00:00
Stephan Aßmus
3295cceb8f Forgot something
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12751 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-20 23:54:28 +00:00
Stephan Aßmus
7220b138f2 fixed confusion of byteCount and charCount in ServerFont::StringWidth(), just in case anyone really uses it later. Added UTF8CountChars() to moreUTF8.h, but then I didn't need it...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12750 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-20 23:51:33 +00:00
Stephan Aßmus
3f513bbafe Font rendering code should be cleaner, maybe a little more efficient and better documented. Rotated text is supported again.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12748 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-20 23:26:15 +00:00
Stephan Aßmus
e980fe005f fixed the build, sorry
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12747 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-20 19:59:24 +00:00
Stephan Aßmus
1218d80ff8 removed no longer used stuff
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12746 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-20 19:54:12 +00:00
Stephan Aßmus
2762b0cecd Work in progress... improvements on font stuff, reverted to using Painter to get the string width. Since it actually uses glyph caching, it is about 20 times faster than the implementation in ServerFont (and a about twice the time as R5). I added a StringWidth method to Painter and AGGTextRenderer which works as correct as ServerFont::StringWidth, which btw was broken, because I mixed up glyph count and byte count...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12745 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-20 19:52:38 +00:00
Stephan Aßmus
38c5a7b7fa Implemented StringWidth in ServerFont, updated ServerApp to use it, and removed a -1 from TextView in the char location calculation, which I didn't understand and without which the cursor location and related stuff now finally work.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12744 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-20 17:36:55 +00:00
Axel Dörfler
52005fdaff Finally fixed Adi's repeatedly mentioned pet peeve: in AS_LAYER_GET_MOUSE_COORDS
communication, the port's reply port is no longer sent to the app_server (as it
knows where to reply to, anyway).
Also made sure the view's looper is locked while getting the coords - I guess
BPortLink doesn't like to be written to from two different threads :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12742 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-20 02:42:52 +00:00
Stephan Aßmus
9962b67e5f DisplayDriver::DrawBitmap() takes no more region, the clipping is expected to be already set, as with all other drawing functions. Moved bitmap drawing message dispatching in the drawing messages area, where the correct clipping is set too. Moved cases for messages that don't need clipping applied, ie which don't draw anything, into the normal dispatch function. This means SetHighColor() and so on will no longer rebuild the clipping in Painter. Would be interesting to know how much performance this had cost...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12741 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-20 00:09:59 +00:00
Stephan Aßmus
9f602781bf Added a check for single buffered mode when reporting available HW acceleration, because it clearly won't work in double buffered mode.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12737 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-19 17:39:58 +00:00
Stephan Aßmus
3eaf632305 improve smoothnes of arcs rendering in Painter, fix a warning
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12710 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 12:16:15 +00:00
Stephan Aßmus
987f7a0a18 Updated Painter to produce the exact same results for stroked round rects and ellipses. R5 is kind of strange... I didn't reproduce some obvious R5 round rect defects though. Added a remark in ServerScreen about deleting the DisplayDriver, I left it commented, because the obos_registrar is not quitting when the app_server is closing, this should be fixed first.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12703 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 00:22:49 +00:00
Stephan Aßmus
0b6fe6d3a9 Reverted my change for the INFORM define.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12695 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-17 08:50:53 +00:00
Stephan Aßmus
fef11f270b The registrar was always in debug mode, no matter what was defined.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12690 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-16 17:49:19 +00:00
Stephan Aßmus
ad6b480400 Work in Progress. The server keeps the client window up to date on layer movement/resizing. This fixes quite a few problems and brings support for FrameMoved and Resized hooks. But implementing it this way has its own set of problem, most importantly: When a BView calles Window()->CurrentMessage() in its FrameMoved/Resized hooks, it will see something very different from what it would see in R5. This needs to be fixed, but I have not had a good idea how to do this other than faking the current message in BWindow, which I didn't look into.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12689 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-16 15:39:58 +00:00
Stephan Aßmus
1f738c5b4e Used other font metrics members in the GetEscapement implementation in order to support white spaces. As suggested by DarkWyrm. It seems to work better now, but I realised that DisplayDriverPainter::StringWidth() is broken in the same way. Will be fixed next.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12681 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-16 11:03:28 +00:00
Stephan Aßmus
92acca78db Finally nailed a graphics bug I was looking for for quite some time. The only one I'm still seeing is with text. Sometimes the last line of text is not drawn.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12680 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-16 11:00:50 +00:00
Stephan Aßmus
85e7619148 added syncing to HW acceleration, so that nothing gets drawn by the CPU before the HW commands have been executed. Works here with Radeon. Removed a debugger call from app_server when the mouse position changed in UP/DOWN events compared to the last MOVED event. replaced it with an fprintf and updated the on-screen mouse position. IMHO, all debugger calls should be replaced with fprintf when compiling for Haiku.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12670 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-15 11:59:14 +00:00
Stephan Aßmus
151ebb14dd just a little cleanup, made PNG screenshots work
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12665 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-15 00:22:55 +00:00
Stefano Ceccherini
d4045331c8 some minor cleanups
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12664 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-14 16:04:49 +00:00
Stefano Ceccherini
cb80e15b3c ServerWindow is no more a ServerApp's friend. Some cleanups.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12663 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-14 13:22:26 +00:00
Stephan Aßmus
9bdb0522c1 Implemented BFont::GetEscapments() float version. It is pretty rough yet, but appears to handle UTF8 correctly. The optional escapement_delta is currently ignored. I didn't touch other functionality too much, until I know more about it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12645 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-12 15:09:30 +00:00
Stephan Aßmus
b3d3da708d more cleanup, fixed a bug in AS_GET_ESCAPEMENTS_AS_FLOATS that caused a lockup. DarkWyrm - I'm looking at you. :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12640 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-12 10:31:48 +00:00
Stephan Aßmus
3c6c2f8adb Found the problem in my hardware acceleration code (pretty lame bug...), now we have hardware accelerated single buffer mode (still with a software cursor) under Haiku, and it feels quite nice already. For me, this is the right direction to go. That being said, I still have no clue how the sync_token should work, so if someone can point me to some documentation about accelerants, particularly the cursor related stuff now, I'd be grateful!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12623 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-10 12:52:13 +00:00
Stephan Aßmus
f571c4aee6 fixed typo
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12616 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-10 11:30:17 +00:00
Stefano Ceccherini
821d08e5ea Added a TODO item
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12596 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-08 06:24:35 +00:00
Stefano Ceccherini
f3a544e820 Putting this handler in once again, as it looks it's used in InterfaceDefs.cpp, even if it's not working
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12595 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-08 06:21:48 +00:00
Stefano Ceccherini
8058130392 Cleanup of the ServerApp parts I looked at. Removed reduntant comments
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12594 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-08 06:06:55 +00:00
Stefano Ceccherini
09cbe37854 Fixed leading. Simplified a bit the code
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12591 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-07 17:32:43 +00:00
DarkWyrm
fb52610b82 Added a handler for GET_ESCAPEMENTS_AS_FLOATS so that there are no deadlocks in the BFont call until the server-side code can be implemented
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12590 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-07 17:11:30 +00:00
Stefano Ceccherini
04efb239b7 AppServer is no longer a friend of ServerApp. Small cleanups.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12586 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-07 15:56:15 +00:00
DarkWyrm
3348baea8f Fix for leading space
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12585 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-07 15:04:52 +00:00
Stefano Ceccherini
46a20a9b71 Font leading is not the total height of the font
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12584 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-07 13:58:31 +00:00
Stefano Ceccherini
8c7998ef76 Fixed endless loop when a BWindow is created with the B_ASYNCHRONOUS_CONTROLS flag
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12582 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-07 13:03:20 +00:00
Stefano Ceccherini
78f09a0553 app_server doesn't hang anymore when an application exits in an unclean way. Got rid of the kill_thread in ServerApp's destructor. Small refactoring. Added a TODO item.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12578 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-06 22:38:04 +00:00
Stefano Ceccherini
c63a94c7e3 Fixed a possible deadlock
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12576 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-06 07:47:17 +00:00
Stefano Ceccherini
cd5920926b Fixed various bugs related to utf8 data in B_KEY_DOWN/UP dispatchers.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12575 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-06 07:22:01 +00:00
Stefano Ceccherini
61d296c9f5 Fixed a crashing bug
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12574 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-05 07:38:39 +00:00
Stephan Aßmus
fbf48e6437 Enabled HW acceleration for CopyRegion(). Tested on Haiku and it works. I also implemented FillRegion and InvertRegion. But using different acceleration hooks after one another freezes Haiku, app_server, the accelerant or whatever. I have no clue about accelerants, so if a knowledgable someone would have a look at AccelerantHWInterface.cpp, that'd be great. The software cursor stuff has a cosmetical bug with regards to CopyRegion() too, I don't understand it yet. I also tried to improve StringWidth() and DrawString() preformance. I confirmed that the glyph cache is actually used, but AGGTextRenderer::RenderString() is a dog.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12573 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-04 23:48:19 +00:00
DarkWyrm
5e6d7d522d Fixed a TODO - added a method for calling StringWidth with a ServerFont instead of DrawData
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12568 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-04 09:39:06 +00:00
Stephan Aßmus
d3194176a3 added support for software cursor needed for single buffered mode
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12561 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-03 21:48:22 +00:00
Stephan Aßmus
9c796f60c2 rearranged some functions, removed unused ones
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12560 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-03 21:47:08 +00:00
Stephan Aßmus
b060f5e1eb more correct implementation of B_OP_COPY, in that it blends against the current low color (as seen in text rendering on BeOS), of course this extends to anti-aliased lines on Haiku
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12559 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-03 21:45:16 +00:00
Stephan Aßmus
24bc7597eb cosmetic
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12558 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-03 21:43:51 +00:00
Stephan Aßmus
265db80516 added a timeout for sending messages down to the client, it keeps app_server from hanging, though of course it doesn't fix the real problem, I have not had time to investigate the messaging, but this work around shows that the hang ups that I was seeing indeed happen in the messaging code
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12557 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-03 21:42:37 +00:00
Stephan Aßmus
48c0335055 added a small safety check
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12556 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-03 21:40:29 +00:00
Stephan Aßmus
924b7ab22c the clipping BRegion is now always allocated, added shortcut for determining if there is a valid clipping
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12555 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-03 21:39:03 +00:00
Stefano Ceccherini
55814cfde4 Added a TODO item with a bad bug report
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12524 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-02 08:29:37 +00:00
Stefano Ceccherini
f812bf8b4c Implemented server side support for BScreen::SetMode(). Note that setting the mode works, but rootlayer crashes afterwards. I guess I'll need to lock something. Adi ? Stephan ?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12523 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-01 06:26:49 +00:00
Jérôme Duval
ecbc8ec9c2 reversed cursor.x and cursor.y
cursor semaphore initial count is now zero


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12520 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-30 15:00:10 +00:00
Stefano Ceccherini
6e927d6e3b BScreens methods didn't work for a number of reasons: fixed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12517 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-30 07:04:27 +00:00
Stefano Ceccherini
9c06e46d6a fDriver wasn't apparently used anymore. Thanks Jerome. BTW we should remove it if it's useless
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12514 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-30 05:45:49 +00:00
Stefano Ceccherini
4dbe8b9db6 Server-side code for BScreen::GetMode() (actually tweaked an old implementation)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12509 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-29 20:30:04 +00:00
Stephan Aßmus
1596a167c0 work around for layers not being moved that have not yet been added to the tree. See WinBorder::MoveTo for the explaination. The same problem should be at other places and most likely for normal views as well. This fixes BWindow::MoveXX() when it is not yet Show()n
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12500 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-28 23:56:40 +00:00
Adi Oanca
b9cc06b57c Show workspace number in the upper left corner
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12497 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-28 18:28:23 +00:00
Jérôme Duval
1f04728a75 Reworked different build modes
Uncomment in Jamfile "#APPSERVER_TEST_MODE = 1 ;" to test app_server with input_server
Uncomment in InputServer.h "//#define R5_CURSOR_COMM" to enable cursor comm when appserver BPortlink comm is used
Default mode is R5 comm if TARGET != haiku
and appserver BPortLink comm when TARGET = haiku

For APPSERVER_TEST_MODE, make sure to change the ViewInputDevice path in AddOnManager.cpp
To test with app_server, enable LaunchCursorThread() in AppServer.cpp and uncomment "#define INPUTSERVER_TEST_MODE 1" in ViewHWInterface.cpp
Also make sure to change the input_server path in AppServer.cpp


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12493 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-28 13:47:59 +00:00
Stephan Aßmus
9715a3e1bf fixed BWindow::MoveXX(), BWindow::ResizeXX() and BView::ConvertToScreen()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12491 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-28 12:31:25 +00:00
Jérôme Duval
e9da11d0b2 added inputserver test mode for ViewHWInterface
we write view events to a port so that the ViewInputDevice gets them and have them processed by input_server, and then app_server


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12489 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-28 10:10:52 +00:00
Stephan Aßmus
609b465638 fixed BView::MoveTo() and BView::ResizeTo(), fixed typo
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12487 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-28 09:44:29 +00:00
Stephan Aßmus
4828a7251f I'm not 100% sure, but I think I fixed a confusion in sending the current view position and size to the client. Note that BView::originX and BView::originY are poorly named, because they are not the local coordinate system origin, but the offset within the parent at which the view is located.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12484 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-27 23:20:29 +00:00
Stephan Aßmus
50581a7c0a fixed a bug with drawing ellipses and invalidating the correct area for stroking paths, taking the stroke width into account
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12483 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-27 23:17:39 +00:00
Stephan Aßmus
db7226db9d work in progress to get scrolling working, so Adi can have a look, no changes to existing functionality, cleanup in Layer.cpp
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12481 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-27 17:26:57 +00:00
Stephan Aßmus
93a2cfd43c Correct implementation of BView::CopyBits() in ServerWindow, implementation of CopyRegion in DisplayDriverPainter that sorts the rects topologically depending on direction and does the copy in place, obtaining a speedup of about 250%. TODO: extract the sorting algorithm so that it can be reused for the hardware accelerated version later.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12468 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-26 13:50:34 +00:00
Axel Dörfler
7b58474a09 Beautified some odd code (like "a ? a : NULL" to "a").
Applied our coding style guide.
No functional change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12464 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-25 14:14:09 +00:00
Adi Oanca
51a73c1e2b Fixed a bug where a modal app window appeared in current workspace although its workspace mask did not include it
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12462 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-23 10:05:33 +00:00
Adi Oanca
d53639ce2e Implemented support for BWindow::SetFeel()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12456 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-21 18:57:34 +00:00
Stephan Aßmus
3934e7037e forgot another important detail...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12451 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-20 10:36:05 +00:00
Stephan Aßmus
f8bbbd8332 it helps reading my own commit messages
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12450 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-20 10:12:54 +00:00
Stephan Aßmus
ded5874ea2 Implemented changes necessary for single buffered mode, it is turned off for now, because the soft cursor is currently not being taken care of. We will still use double buffering if the screen color space is not 32 bits, too.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12449 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-20 09:27:15 +00:00
Jérôme Duval
b8d27287f9 Added support for cursor position handling from input_server
LaunchInputServer now waits for _roster_thread_ to be running
Not tested/not enabled :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12445 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-19 20:44:09 +00:00
Stephan Aßmus
0999749164 experimented with BView::CopyBits(), found out how it should work, but didn't do the changes yet for a correct implementation
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12444 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-19 18:55:46 +00:00
Stephan Aßmus
e742e3e106 refactoring and cleanup in LayerData and friends, it shows what I mean by "forced code paths" for example in coupled font size and view scale, added a couple TODOs, disabled decoupled frame buffer transfers, it is buggy and deadlocks for some reason...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12441 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-19 00:42:42 +00:00
Stephan Aßmus
387242437d moved more old stuff which isn't used anymore
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12439 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-18 19:16:11 +00:00
Stephan Aßmus
3dea4bb659 cleanup the defines, move old DisplayDriver implementations out because they are currently unused and won't build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12438 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-18 18:48:19 +00:00
Stephan Aßmus
74b3612ac3 refactoring, speedup by decoupling back to front transferes from drawing and usage of special memcpy routine, minor speedups in Painter
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12437 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-18 16:09:43 +00:00
Michael Lotz
fd5ac83a1a Use one BPortLink (fAppServerLink) instead of always creating a new one to send events to the app_server.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12427 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-17 12:27:43 +00:00
Michael Lotz
597c548ca3 Moved the port creation for app_server - input_server communication out of the DisplayDrivers and into the AppServer constructor. This may later needs to be moved into RootLayer if we want multiple user support.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12426 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-17 12:26:16 +00:00
Adi Oanca
d7c2c05061 Big cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12424 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-16 13:30:49 +00:00
Stephan Aßmus
a4365bfe01 support drawing invalid rects
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12422 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-15 17:45:10 +00:00
Stephan Aßmus
961efda06b workarround for bug in WonderBrush drop shadow filter... how lame is that...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12421 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-15 17:44:13 +00:00
Stephan Aßmus
a415a09a32 Adi told me a quick fix to get BView::Invalidate() working, it doesn't work correctly yet (invalidates child views as well), but it is a start.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12420 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-15 16:03:16 +00:00
Stephan Aßmus
1e1b1675de really implement BitsLength() inline, I have no idea why it compiled for me...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12418 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-15 15:31:57 +00:00
Stephan Aßmus
5cf27f9b8d fix bug with internal AGG renderer color not being updated when a special solid drawing mode is used
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12417 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-15 15:22:20 +00:00
Stephan Aßmus
99d36ad1d1 remove support for line breaks
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12416 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-15 15:21:36 +00:00
Stephan Aßmus
babce6c921 some clean up and reuse of member variables for more efficiency
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12415 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-15 12:41:32 +00:00
Stephan Aßmus
3809998c83 I'm not sure this is needed, because inherited DrawingModes don't have any data and do nothing in their constructor, but I'll rather be on the safe side
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12414 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-15 12:27:34 +00:00
Stephan Aßmus
0c926a191f reuse DrawingMode instances
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12412 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-15 12:25:25 +00:00
Stephan Aßmus
a3fa31559c fixed DrawString problem, there can only be one way to set the pattern, MiniTerminal works with my latest changes, and DrawString should be more efficient, because a special pattern-ignorant drawing mode class can be used
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12410 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-15 11:52:22 +00:00
Stephan Aßmus
2b9de7c55a whoops, I broke MiniTerminal, temporary fix until I find the real problem.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12409 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-15 10:30:18 +00:00
Stephan Aßmus
4da1508aa9 added convenience functions to PatternHandler and refactored the setting of the DrawingMode in Painter
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12408 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-15 10:20:53 +00:00
Stephan Aßmus
3d16cf4bce Painter drawing functions now return the BRect enclosing all pixels that have changed, use this for invalidating the correct area in the backbuffer
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12407 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-15 09:55:15 +00:00
Stephan Aßmus
8efa2a5dbc fixed one moree clipping bug with StrokeLine
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12404 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-15 09:01:07 +00:00
Stephan Aßmus
5e33f6e551 pattern is not passed to the drawing functions anymore, it is expected to be set in SetDrawData
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12403 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-15 08:53:28 +00:00
Stephan Aßmus
026470a78c no more fOrigin and fScale in Painter, everything is now expected in absolute (screen) coordinates
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12402 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-15 08:37:52 +00:00
Stephan Aßmus
87e0d62446 define the use of the new BRegion AGG renderer
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12401 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-15 08:17:18 +00:00
Stephan Aßmus
17360617d2 fixed a really lame bug in the StrokeLine call that caused all these problems with line drawing and or invalidation afterwards, avoid transforming the clipping region into another format used by AGG by using a special BRegion based renderer
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12400 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-15 08:15:04 +00:00
Stephan Aßmus
519c55739f an agg renderer that uses a (reference to a) BRegion for storing clipping information, this avoids transforming the clipping from Painter to the agg world
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12399 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-15 08:12:29 +00:00
Stephan Aßmus
8770be761d convert the invalid rect to the top layer coords, Adi, an update message is only sent when a layer is the top layer in Layer::RequestDraw, I don't know how to fix this, but it would be nice to have BView::Invalidate working.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12398 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-15 00:31:39 +00:00
Adi Oanca
b53cd0ef8f All keyboard messages now go to BWindow's preferred handler. Also, mouse wheel messages go to the BView under mouse.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12396 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-14 21:42:32 +00:00
Stephan Aßmus
6359ecc258 just a temporary thing... I couldn't resist
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12391 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-14 00:24:42 +00:00
Stephan Aßmus
a52667ee9c added a comment about how it would be nice if ServerFont could be guaranteed to be valid (ie it doesn't crash if you call one of it's functions from outside code, I like it when a C++ class is an encapsulated object, maintaining a valid internal state, and whatever client code does, it should just never crash)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12390 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-14 00:22:01 +00:00
Stephan Aßmus
53ca92129f code is more correct
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12389 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-14 00:12:44 +00:00
Stephan Aßmus
8fdfa137d6 don't crash if the system fonts are not initialized
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12388 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-14 00:12:06 +00:00
Stephan Aßmus
bd841e3cd4 fall back fonts are actually used now if you didn't install the Vera fonts on R5
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12387 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-14 00:11:33 +00:00
Stephan Aßmus
d3665bb866 mostly cosmetic changes, nothing of substance
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12386 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-14 00:10:41 +00:00
Stephan Aßmus
d78aea1846 hides a bug where we appearently read from the cursor out of bounds because of float to int converting issues... need to investigate that. In any case, I got the cursor position thing completely wrong, my intentions of setting it to 0.5, 0.5 were something else...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12385 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-14 00:09:03 +00:00
Stephan Aßmus
ec668ad701 Cosmetical changes and quite a few bug fixes along the way - B_RGB24 is definitely not supposed to be 32 bits per pixel. For example. Added another constructor to take on bitmap data from somewhere else
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12384 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-14 00:06:01 +00:00
Stephan Aßmus
9afc50fd98 cosmetical changes and some bug fixes along the way, added another constructor to take on bitmap data from somewhere else
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12383 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-14 00:04:26 +00:00
Adi Oanca
49ea5b1684 Yeah, I can't imagine how I could forget to insert this line...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12379 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-13 21:47:44 +00:00
Adi Oanca
ea44b0bc79 Made BWindow::WorkspaceActivated() and BWindow::WorkspacesChanged() work.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12378 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-13 21:32:23 +00:00
Axel Dörfler
900849fa0d Since objects/.../system/kernel is now a directory, the kernel target is now
called kernel_${arch} like on disk. A "jam kernel" will still work, though.
Also updated all those Jamfiles I forgot to update before.
Since makehdimage now runs through (and even builds a working image), I guess
most of the consequences of the "kernel/core" -> "system/kernel" rename task
are solved.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12364 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-13 14:49:55 +00:00
Axel Dörfler
709bbb9ea3 The input_server no longer uses R5 communication by default - this should
fix the keyboard/mouse problems of most (because they probably didn't know
about this flag). Still does not work for me, though.
Note, if you want consoled the use the input_server, or if you want to use
the input_server as an R5 replacement, you have to define this flag again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12356 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-13 12:55:54 +00:00
Jérôme Duval
ccce070045 As Haiku BScreen::Frame() doesn't work in our current state, we use a fake Frame
input_server now sends well filled BMessages in Haiku


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12350 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-12 18:51:03 +00:00
Stephan Aßmus
6697162d5c just a slightly more robust default font handling... should now work on Haiku even if you didn't install fonts from BeOS.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12347 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-12 13:15:38 +00:00
Stephan Aßmus
b176b6b493 The DisplayDriverPainter is now also the default on Haiku. The DisplayDriverImpl stuff is left out for now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12340 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-12 08:22:16 +00:00
Stephan Aßmus
5eec899752 added a TODO comment
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12339 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-12 08:15:53 +00:00
Stephan Aßmus
a53e726400 StrokeLine takes a non-const DrawData, penlocation is altered.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12338 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-12 08:15:25 +00:00
Stephan Aßmus
a11f3c21fd StrokeLine takes now a DrawData, but it is only work in progress. The changes will be more drastic in the end.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12337 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-12 08:14:29 +00:00
Stephan Aßmus
80ed6173ec Hinting works now and is enabled, the support for transformed text is probably completely broken now. To reenable it, the font loading needs to ask for vector glyphs when there will be a transformation.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12335 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-12 08:12:59 +00:00
Stephan Aßmus
0858a6fca1 The freetype hinter only works correctly if the embedded transformation is the identity matrix. The AGG freetype font engine has a flip_y method to make it easier to work with coordinates where y points down. Since it changes the embedded transformation, hinting was messed up. Therefor, this is a workarround to be able to keep using the identity matrix and still have y pointing down. It just flips the generated raster glyphs.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12334 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-12 08:11:09 +00:00
Stephan Aßmus
764683a939 StrokeLine alters the pen location, DrawData needs to be non-const. I didn't make this change in the DisplayDriverImpl stuff, and it is left out of the build for now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12333 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-12 08:07:20 +00:00
Stephan Aßmus
bd6b1617ec a few cosmetic changes
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12332 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-12 08:05:03 +00:00
Michael Lotz
3650623d6f Replacing broken binary resources with rdefs.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12300 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-11 22:54:16 +00:00
Adi Oanca
4038d58146 Fixed a bug where a modal subset on some occasions did not change workspaces when its main window did. Initializing workspaces is a bit different now, they are initialized when are needed. Some work on adding support for BWindow::WorkspaceActived()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12299 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-11 22:46:48 +00:00
Michael Lotz
7544c9f03b Implemented DumpToFile() from AccelerantDriver so that screenshots can be taken.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12296 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-11 20:15:43 +00:00
Michael Lotz
f0b7006ca0 We lost one pixel there.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12295 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-11 20:13:34 +00:00
Michael Lotz
d7b4d4119c This is a temporary implementation of ctrl-tab/switching between windows. It can be removed when we can use Twitcher (if we really want to use it in the end).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12294 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-11 20:11:46 +00:00
Adi Oanca
9d88881f9c Added support for setting a window's workspaces from BWindow::SetWorkspaces(). Added a new method in RootLayer to have the new window list, invalidate, set new focus and send activate messages in a single command. Did that because there were many places where the same sequence was executed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12287 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-10 19:04:06 +00:00
Adi Oanca
8476051c04 One can change a (B_NORMAL_WINDOW_FEEL only, as in R5) window's workspace by holding its tab and switching workspaces with keyboard
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12281 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-10 11:30:51 +00:00
Adi Oanca
d137bc62e8 Removed a friend, a printf and a blank line. :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12280 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-10 11:26:59 +00:00
Adi Oanca
81d71c74c8 Update requests are sent only after the last one has been received an processsed
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12268 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-06 20:56:46 +00:00
Adi Oanca
2f6d87a6c5 Removed some commented code of mine as it's no longer needed
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12267 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-06 20:54:00 +00:00
Adi Oanca
ddc9feb406 Added a member to know when an update request has been sent
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12266 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-06 20:52:58 +00:00
Adi Oanca
75efbbb3ed if region is not NULL but invalid, draw nothing
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12265 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-06 20:51:38 +00:00
Adi Oanca
0cb3fdda93 Nothing special. Just some cleanup to the update code. There is still a problem with layers not being properly updated sometimes when you move windows arround. The same problem occurs a lot more often when resizing windows. I'm traking it... :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12259 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-05 20:03:07 +00:00
Stephan Aßmus
8940f93c1d AccelerantHWInterface now uses a MallocBuffer as RenderingBuffer for the back buffer instead of a BitmapBuffer, which under Haiku does not work.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12217 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-01 10:36:23 +00:00
Michael Lotz
7d5778defa Added support for GetEscapements() too. Still unfinished. Maybe this should be moved elsewhere?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12216 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-01 09:18:25 +00:00
Michael Lotz
c2da902f2e Implemented BPortLink::AttachShape and BPortLink::ReadShape and used them for passing the shapes in AS_GET_GLYPH_SHAPES.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12215 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-01 07:29:04 +00:00
Michael Lotz
ebf8af66c9 Added support for BFont::GetGlyphShapes. Not finished yet and untested, delivery method as to be changed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12214 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-01 07:00:32 +00:00
Michael Lotz
3661cae99c Aren't these supposed to be chars?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12213 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-01 04:03:11 +00:00
Michael Lotz
54f7283aa0 Appearantly StrokeLineArray is used in BButton rendering.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12210 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-01 02:06:07 +00:00
Ingo Weinhold
c6ba97963c We didn't Unlock(), if setting the display mode failed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12209 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-01 01:11:38 +00:00
Adi Oanca
a2bc7be9ed This fixes up the last known remaining issues with the update code. It works perfectly now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12197 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-31 16:48:51 +00:00
Stephan Aßmus
a356096dba massive performance improvements. On my ancient 2xPII 350, the DisplayDriverPainter with the ViewHWInteface is pretty much usable now. It could be even better if app_server culmulated update requests more.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12180 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-31 10:46:02 +00:00
Michael Lotz
bb72ccac74 The Painter now uses a special version of the agg_font_engine that uses the FontServer ftlib and the already loaded FT_Facees from ServerFont/FontStyle instead of doing it all again.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12177 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-31 06:08:37 +00:00
Stephan Aßmus
89b3c19c8a ViewHWInterface updates are a bit smoother now
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12175 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-30 23:02:44 +00:00
Stephan Aßmus
15b391f607 more correct implementation, forgot header again
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12173 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-30 22:24:40 +00:00
Adi Oanca
4c6f8b572e This fixes up those update request being lost.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12172 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-30 22:13:26 +00:00
Stephan Aßmus
fbdc6c450d ups, forgot this one, but it doesn't help. views seem to have no clipping applied to them at all now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12171 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-30 22:11:48 +00:00
Stephan Aßmus
03339b3565 added Adis changes, started to return BRect in Painter drawing functions, this will be the area enclosing all pixels that were touched by an operation, so that the DisplayDriverPainter knows exactly what region to copy from back to front buffer, it calculates that by itself for all other functions, which is not as robust.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12170 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-30 22:10:42 +00:00
Adi Oanca
f694c0e30e This may be a quick and dirty fix to the problems we've been having with the update code. However this requires something from DisplayDriver. I'll write about this in a moment on app_server list.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12165 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-30 20:06:50 +00:00
Stephan Aßmus
45c0cd28d8 scrolling BViews now works, tested with MiniTerminal, added lots of TODO stuff, maybe Adi or DarkWyrm should have a look, maybe they can clear some stuff up for me.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12161 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-30 16:05:05 +00:00
Stephan Aßmus
6283b1c6dd removed leftover code
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12157 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-30 11:11:17 +00:00
Axel Dörfler
97d05e6652 Even if it's probably outdated soon: fixed a crashing but in Shutdown() if
no card could be found.
Note, the replacement does not suffer from this anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12152 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-30 00:17:12 +00:00
Stephan Aßmus
d324aa8386 fixed MiniTerminal rendering, for real now
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12151 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-30 00:12:24 +00:00
Stephan Aßmus
bf72c9e259 fixed MiniTerminal rendering
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12149 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 23:56:42 +00:00
Stephan Aßmus
d01b623805 some improvements to font handling, but Miniterminal still renders only black blocks
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12148 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 23:42:52 +00:00
Michael Lotz
507c1efe07 I didn't want to mess with the screen resolution, sorry.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12147 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 23:04:26 +00:00
Michael Lotz
73fc67136c Choose headers according to DISPLAYDRIVER, too.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12146 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 23:00:58 +00:00
Stephan Aßmus
d3b0b7b979 fixed some font related problems, Painter should now rely on the app_server font manager. maybe I fixed some compile problems too. Sorry if that was the case.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12144 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 22:57:43 +00:00
Michael Lotz
a4f89893df Added the input_server port to the AccelerantHWInterface - again.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12143 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 22:44:13 +00:00
Stephan Aßmus
3f537e5fa7 moved more of the old stuff from DisplayDriver into DisplayDriverImpl
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12141 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 22:22:28 +00:00
Stephan Aßmus
13066bfea1 it belongs here
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12140 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 22:01:21 +00:00
Stephan Aßmus
b3b4f48527 removed const declaration to allow locking in DisplayDriverPainter, as I think access to this needs to be serialized
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12137 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 21:45:52 +00:00
Stephan Aßmus
7940a07172 DisplayDriverPainter should now use the new AccelerantHWInterface when compiled for Haiku, added locking to the rest of the functions which access HWInterface instance
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12135 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 21:26:58 +00:00
Axel Dörfler
d19337ad86 The previous change overwrote the $defines variable, although both defines should
be there at the same time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12133 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 20:37:30 +00:00
Michael Lotz
da4526cdcf TEST_MODE is now disabled on Haiku too. So app_server is not a BApplication anymore and doesn't depend on itself.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12132 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 19:50:39 +00:00
Michael Lotz
9775bf33cf TEST_MODE is now disabled on Haiku too. So app_server is not a BApplication anymore and doesn't depend on itself.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12131 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 19:49:55 +00:00
Stephan Aßmus
9c59f2f207 fixed app_server build, though I don't exactly know why that fixes it
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12130 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 18:32:43 +00:00
Stephan Aßmus
d3db964ed0 code refactoring, moved common stuff into the base class
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12129 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 17:36:38 +00:00
Michael Lotz
b87be17fc8 Fixed the last remaining warning.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12128 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 17:31:31 +00:00
Axel Dörfler
86e150e821 app_server.rsrc is no longer used (we already have the .rdef file).
Fixed the application signature in the .rdef file.
Removed some "how to write an .rdef file" comments.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12124 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 16:38:17 +00:00
Michael Lotz
b2c9e18270 Accelerant based implementations of HWInterface and RenderingBuffer. Untested.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12123 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 16:31:46 +00:00
Axel Dörfler
82aa535b3f Updated app_server Jamfile to be able to build a server that runs under Haiku
if $TARGET_PLATFORM requires this.
Note, "jam app_server" for R5 did not work for me before and does not work now
although the number of errors are reduced - whoever knows the requirements for
the app_server under R5 better than me, please fix this.
Added the app_server as well as some more drivers to the Haiku HD image. Since
RUN_WITHOUT_APP_SERVER is still defined, it won't work correctly, though.
For the time being, you need to manually alter this and the Bootscript in order
to run it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12121 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 16:21:55 +00:00
Axel Dörfler
b2b5acff33 Made DISPLAYDRIVER a true compile time option.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12119 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 15:39:08 +00:00
Stephan Aßmus
1a7fc52717 added some functions with optimized implementation, optimizes most frequent usage
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12113 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 01:43:04 +00:00
Adi Oanca
eb6bc5d5ff Started to implement workspace support. Surprisingly, with this small change changing workspaces actualy works. An it works quite well I may add. :-) So happy the new window manager which I heavily tested actualy works inside app_server. :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12109 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-28 21:32:24 +00:00
Adi Oanca
256c1b1502 Insignifican change. Read uint32 instead of int32.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12108 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-28 21:26:35 +00:00
Stephan Aßmus
e33b90ea35 implemented cursor support in the DisplayDriverPainter
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12107 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-28 18:03:45 +00:00
Stephan Aßmus
e0bb2421ea whoa - how did this even work?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12094 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-28 14:29:18 +00:00
Stephan Aßmus
181a984e2a implemented the rest of the drawing calls save for Stroke/FillShape, since I would have to ask what kind of data this function is being passed
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12092 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-28 13:39:35 +00:00
Stephan Aßmus
02ec6ae825 Implemented and tested the color spaces B_RGB16, B_RGB15, B_CMAP8 and B_GRAY8. The trick is this: The Painter based implementation will most likely always use a double buffered approach. I simply made the back buffer, into which Painter draws, always B_RGBA32, while the front buffer can have any other format the drawing backend is supposed to support. In CopyBackToFront, the format conversion is handled. This gets us pretty far without actually doing very much, and I am not even sure if there should/can be a better implementation.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12091 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-28 13:38:11 +00:00
Stephan Aßmus
c3bfa6fec9 avoid a crash if used without attached buffer
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12090 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-28 13:33:15 +00:00
Stephan Aßmus
9543470f44 RootLayer thread can busy loop, and with this change, its easier to shoot app_server whereever it hurts most
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12089 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-28 11:13:19 +00:00
Stephan Aßmus
f6939eb1e1 more correct implementation, but still exhibits problems, usage turned off in ViewHWInterface::Invalidate
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12088 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-28 11:11:33 +00:00
Stephan Aßmus
94b3e6bfd0 ignore the pattern passed to the drawing functions, keep using the one from SetDrawData
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12087 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-28 11:08:10 +00:00
Stephan Aßmus
55a56d8b0e added fake_input_server.cpp to the build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12086 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-28 11:04:44 +00:00
Stephan Aßmus
022badfd34 extracted the fake input_server communication into an extra file used by ViewDriver and ViewHWInterface
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12085 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-28 11:04:00 +00:00
Stephan Aßmus
53115c9920 moved the place of implementation of locking in DisplayDriver, because the Painter version has it elsewhere. the DisplayDriver locking API is now abstract, the same locking is now in DisplayDriverImpl, Painter version uses HWInterface for locking
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12084 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-27 22:02:19 +00:00
Adi Oanca
d9bbe07efa When the active window (the one who has both, focus and front states) changes, messages are sent to the client side. This makes BWindow::WindowActivated to be called on such am event.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12077 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-27 13:52:26 +00:00
Adi Oanca
80cbe2b0f3 2 new methods
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12076 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-27 13:48:30 +00:00
Adi Oanca
2401f93d84 Added FrontWinBorder(). Made FocusWinBorder() and a few other methods inline.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12075 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-27 12:58:27 +00:00
Adi Oanca
ab88eaf2ad BWindows are notified when they are moved or resized.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12074 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-27 12:19:37 +00:00
Adi Oanca
867b420067 get_workspace_windows() new returns true if there was a change in window hierarchy. Improved performance a bit by avoiding an invalidate call.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12072 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-27 10:51:28 +00:00
Adi Oanca
aa498a5f03 get_workspace_windows() now returns bool
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12071 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-27 10:49:42 +00:00
Adi Oanca
9e358400f5 Sending windows into background works now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12070 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-27 10:00:37 +00:00
Michael Lotz
6109122c9b Implemented screen to screen blit and cleaned up header.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12067 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-27 05:29:56 +00:00
Michael Lotz
65369afd6d Implement AS_LAYER_COPY_BITS.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12066 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-27 05:25:59 +00:00
Michael Lotz
f43d1e849d Implement AS_LAYER_SET_PATTERN.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12065 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-27 04:08:33 +00:00
Michael Lotz
a2a622616f Some cleanup to make it easier to read.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12064 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-27 03:33:23 +00:00
Michael Lotz
d5373f593a Minor cleanup and a small fix
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12061 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-27 01:57:28 +00:00
Stephan Aßmus
c3314ff5eb added DPMS functions to HWInterface as well as Initatialze and Shutdown, added a couple of TODO comments
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12058 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-26 23:23:40 +00:00
Stephan Aßmus
4594032d1a got this added\?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12057 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-26 22:26:42 +00:00
Stephan Aßmus
3294d07b15 abstract base class and implementation using BView and BWindow of an interface to a graphics card, UpdateQueue doesn't work yet, it was going to be used to decouple frame buffer transfers to the front buffer from the drawing in the back buffer
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12056 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-26 22:16:29 +00:00
Stephan Aßmus
5cdd702901 use a DisplayDriverPainter version if config says so
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12055 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-26 22:13:23 +00:00
Stephan Aßmus
1b52d7cf9c include my new stuff in the build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12054 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-26 22:12:37 +00:00
Stephan Aßmus
3d07835f2a init display mode
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12053 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-26 22:11:52 +00:00
Stephan Aßmus
517e54d0d9 added more support functions
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12052 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-26 22:10:54 +00:00
Stephan Aßmus
80547db1f2 added some support functions for string bounding box
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12051 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-26 22:09:58 +00:00
Stephan Aßmus
4157339be2 started to implement stuff, it can actually be used and renders my test app almost like the old implementation, plus clipping
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12050 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-26 22:09:02 +00:00
Stephan Aßmus
e56d7bd374 fixed type in RootLayer, which I found because I triggered a bug
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12049 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-26 22:05:40 +00:00
Stephan Aßmus
e2408620c3 disable the build of agg_font_freetype.cpp for now
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12041 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-26 16:49:40 +00:00
Michael Lotz
0f1414c791 Add Jamfile for libpainter.a to fix the build of app_server.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12020 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-26 10:51:07 +00:00
Michael Lotz
2f45e7ed71 Update inline documentation to reflect the removal of the strlength field
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12019 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-26 10:40:13 +00:00
Adi Oanca
61c1519f03 Small fix to send B_MOUSE_MOVE/UP messages to the BView which acquired the mouse
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12018 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-26 09:18:27 +00:00
Adi Oanca
40b3f1e1ec * clicking inside the active window no longer gets you into debugger. :-P
* Updated KeyboardEventHandler to use the new focus method.
* don't read strlength on B_KEY_DOWN/UP as this gets you into debugger when using ViewDriver.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12017 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-26 08:55:27 +00:00
Adi Oanca
07fdbe8f67 Moved app_server window a bit to the left.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12016 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-26 08:41:46 +00:00
Adi Oanca
688204180d No need to send string length on B_KEY_DOWN/UP
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12015 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-26 08:40:33 +00:00
Stephan Aßmus
80141c9fc5 libagg is now build as static
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12013 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-25 23:34:35 +00:00
Stephan Aßmus
1fc2bd8922 the beginnings of the Painter version of DisplayDriver, I don't know what I'm doing yet, so just ignore this for now
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12011 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-25 22:46:10 +00:00
Stephan Aßmus
a850bd1d8f added Painter to the app_server build and fixed the Jamfile to include the drawing subfolder for header search path
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12010 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-25 22:44:18 +00:00
Michael Lotz
b1530ab8e8 When sending native keydown/keyup events the delivery of the string was broken.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12009 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-25 21:51:02 +00:00
Michael Lotz
96b832ac57 No need to endless loop here.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12008 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-25 21:39:53 +00:00
Michael Lotz
d31e3b8e27 Use FTFace() function to get the face instead of always creating a new one.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12007 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-25 21:11:46 +00:00
Michael Lotz
6d495dfc26 FT_New_Face is a quite heavy function and shouldn't be called for every StringWidth, StringHeight and DrawString call. We now keep it open in FontStyle and destroy it there too.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12006 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-25 21:02:40 +00:00
Michael Lotz
c98108eee3 The monitoring thread should be called "picasso" (lower case) as in BeOS R5.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12005 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-25 20:39:43 +00:00
Michael Lotz
22cf66212c Update AccelerantDriver to the new API and implement all necessary functions.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12001 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-25 19:59:10 +00:00
Michael Lotz
0653d45f5b Adapt to new location of display drivers
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12000 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-25 19:46:28 +00:00
Stephan Aßmus
c0fe8a07c9 moved Painter into drawing
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11989 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-25 17:55:49 +00:00
Stephan Aßmus
3ddd2fc70f started to move files arround for better source structure, app_server still builds and runs fine, in case you were worried...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11988 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-25 17:48:49 +00:00
Stephan Aßmus
10612543aa step 3, exracted code from DisplayDriver into DisplayDriverImpl, adjusted the existing implementations to derive from the new class, got rid of some "friend" stuff along the way, essentially I made room for the new Painter based DisplayDriver implementation.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11986 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-25 17:29:20 +00:00
Stephan Aßmus
cd9401a70b second step, all unused stuff is actually removed from DisplayDriver.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11983 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-25 13:27:20 +00:00
Stephan Aßmus
f595ecf898 as a first step, all appearently unused calls are commented outfrom DisplayDriver and derived classes, I moved many implementations arround to match the order of the declaration in the header, makes it easier to find stuff
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11980 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-25 13:14:59 +00:00
Axel Dörfler
89501e16b9 Forgot to update fonts Jamfiles - ideally, these should be moved somewhere else,
maybe into the data/ directory.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11974 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-24 14:51:25 +00:00
Axel Dörfler
33bbe22391 Moved app_server files to app/.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11972 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-24 14:45:52 +00:00
Axel Dörfler
7abf63d292 Moved app directory out of the way to ease moving.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11971 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-24 14:43:40 +00:00
Axel Dörfler
13b81f062e Removed old app_server files. server/ will be moved on layer up next.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11970 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-24 14:31:53 +00:00
Stephan Aßmus
bdef3a8ede spotted some potetial segfault bugs
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11969 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-24 12:59:13 +00:00
Stephan Aßmus
592bc7d4a3 updated
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11968 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-23 23:13:29 +00:00
Stephan Aßmus
a0ee6395cd updated
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11967 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-23 23:10:43 +00:00
Stephan Aßmus
6fb68b835c added missing string rendering functions, on Haiku, there should be support for drawing bitmaps in all colorspaces that BBitmap::ImportBits knows how to convert to B_RGB32
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11965 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-23 22:34:45 +00:00
Stephan Aßmus
8df0e71d06 support rendering strings up to a certain length, ie less then strlen
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11964 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-23 22:33:06 +00:00
Stephan Aßmus
a0c67cdb39 refactored DrawBitmap to support a version BBitmaps and one for ServerBitmaps, implemented InvertRect, but that was a while ago, and I didn't test it
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11960 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-23 20:31:33 +00:00
Marcus Overhagen
3f484ea41a test checkin
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11947 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-22 01:01:57 +00:00
Adi Oanca
165177a105 Added support for Layers capturing the mouse (Mouse events). Changed WinBorder to use mouse events.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11946 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-21 20:29:24 +00:00
Ingo Weinhold
362e09b124 In case of a debugger() call now also prints the debug message. Makes use of the new libdebug.so.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11926 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-20 22:06:13 +00:00
Adi Oanca
464ebc06c7 Some extra locking when adding a WinBorder
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11919 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-19 19:08:19 +00:00
Adi Oanca
07bde8ab89 * solved that damn bug that run me into debugger. yuppyyy.
* removed some comments
* mouse down messages go only to the view that has focus. Yeah, they didn't. :p
* solved a bug where some windows did not redraw when hiding a modal.
* another bug where a floating window would not come in front for gaining focus.
* added client's team_id into window title.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11918 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-19 18:58:47 +00:00
Jérôme Duval
66040a8d99 keymaps have been moved
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11908 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-18 19:05:19 +00:00
Adi Oanca
48e72f82e6 Removing subset windows works now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11907 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-18 19:00:45 +00:00
Adi Oanca
ddf57545a2 Improved locking. A bit. :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11879 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-17 17:41:00 +00:00
Adi Oanca
211de495df Keyboard and Mouse handlers went private.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11878 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-17 17:37:56 +00:00
Adi Oanca
943ba1b132 MoveToFront() returned 'invalidate' for a floating window when it shouldn't; window was already in front as possible.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11877 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-17 17:36:30 +00:00
Adi Oanca
89bdde9df1 There was too much debug output for regions rebuilding
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11742 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-14 20:59:00 +00:00
Adi Oanca
8b4cf1c373 Fixed a problem with floating subset windows not being shown when their main window became active. (Cleared visible regions for it and its children when automatically being removed from workspace)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11739 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-14 19:25:15 +00:00
Jérôme Duval
376f56d265 when debug = 1, debug output goes to serial, when debug = 2, it goes to a file
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11736 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-14 16:43:59 +00:00
Ingo Weinhold
edc47dd584 The debugger interface has changed a bit.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11716 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-13 23:59:20 +00:00
Adi Oanca
c14d3fc9bd Some progress on supporting subset windows.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11711 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-13 22:54:01 +00:00
Adi Oanca
8866e7b709 RootLayer.h: introduced a method for highlighting window tab when focus
changes.
RootLayer.cpp: window tab was properly lit only when changing focus with
the mouse. Now the same happens when showing or hidding windows.
Desktop.cpp: normal windows created after floating windows did not had
B_FLOATING_APP_WINDOW_FEEL windows in their internal list, thus when such
a window was selected to become the front most it did not show floating
app windows in front of it. Fixed that now.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11710 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-13 19:53:44 +00:00
Adi Oanca
9015d08261 .
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11709 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-13 17:07:40 +00:00
Adi Oanca
c9df3905a8 Improved performance when getting windows list from the active workspace. no more call malloc() every time the list was needed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11708 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 23:26:05 +00:00
Ingo Weinhold
3a3b405008 Adjustions due to changes in the debugger interface
(there's a separate B_DEBUGGER_MESSAGE_EXCEPTION_OCCURRED now).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11707 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 21:56:31 +00:00
Adi Oanca
a6fa470989 Window tab is highlighted/grayed when changing between windows
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11665 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-10 22:07:44 +00:00
Adi Oanca
d3beb2a46c Window moving and resizing resumed
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11661 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-10 21:34:04 +00:00
Adi Oanca
d29c4f5287 Some objects must be destroyed on server quit.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11613 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-07 21:52:41 +00:00
Adi Oanca
74d5a8f70e Fixed a couple of crashes. app_server nicely quits now.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11564 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-03 23:21:36 +00:00
Ingo Weinhold
81d91d7fcb Missing header.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11562 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-03 23:16:35 +00:00
Adi Oanca
e438905abd New window manager comming in.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11513 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-28 20:23:51 +00:00
Ingo Weinhold
35e49f2582 Initial version of our debug server. This is the guy that hangs around
waiting for teams to crash to show our favorite alert.
Due to the missing app_server we don't show a alert yet. We just print
something to /dev/dprintf and kill the team. Unlike R5's debug server
ours will probably not provide any debugging functionality itself, but
rather employ gdb directly.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11492 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-25 14:37:36 +00:00
Nathan Whitehorn
d86d43eba2 Added the beginnings of our power management daemon. Currently does nothing except tell the roster to shut down when you press the power button (in conjuction with acpi_button, of course). Eventually will do things like display low power warnings, spin down hard disks, and display the requisite power info deskbar replicant.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11466 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-24 03:05:53 +00:00
DarkWyrm
348f28e773 Removed the locking from RootLayer::Buttons -- caused a hang in the one place it is called. (doh!)
Implemented ServerApp handler for BFont::CountTuned and added a standby handler for BFont::Direction
Tweaked the ServerWindow debug output


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11457 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-23 01:45:48 +00:00
Michael Pfeiffer
be79e3899d Checked in missing function.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11435 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-21 17:25:37 +00:00
Jérôme Duval
27a5e88b50 introduced a R5 style communication flag
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11322 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-10 15:37:23 +00:00
Adi Oanca
0b9056c784 BMessages which reach BWindow now take full advantage of application_kit's power in sending BMessages to BHandlers
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11282 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-07 00:45:59 +00:00
DarkWyrm
a7870927a4 Implemented AS_SET_FAMILY_AND_STYLE_FROM_ID. One more thing that works better than R5. ;)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11266 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-05 22:46:54 +00:00
DarkWyrm
ee1240b38e RootLayer now tracks which mouse buttons are down
Implemented ServerWindow code for GetMouse


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11265 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-05 21:39:39 +00:00
DarkWyrm
fac4ccbae7 Made Layer::RequestDraw actually request a screen update
Added a second method for ServerFont::SetFamilyAndStyle and added return codes
Removed a couple memory leaks


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11262 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-05 20:12:05 +00:00
Stephan Aßmus
6c1ebb0fcb huge cleanup and more style guide conformance, removed agg namespace, used marcos for inlined blending functions to avoid dereferencing, which gives a small speedup
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11249 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-04 15:52:46 +00:00
Stephan Aßmus
2902c1573a a little clean up, usage of unpacked scanline container gives a small speedup
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11248 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-04 15:45:12 +00:00
Stephan Aßmus
033e1e690c DrawingMode is no longer in agg namespace, an ellipse is drawn with a minimum of 12 sections
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11247 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-04 15:43:23 +00:00
Adi Oanca
998521f78d Helped BWindow for calling the apropriate BView hook methods on some mouse and keyboard events
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11242 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-03 22:50:48 +00:00
Adi Oanca
0a09721a2c Added a private field to B_MOUSE_DOWN message to know whose BView::MouseDown() method to call
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11238 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-03 21:31:42 +00:00
Jérôme Duval
ceba21721e now uses kLeftTitledWindowLook from WindowPrivate.h
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11220 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-02 15:32:33 +00:00
Ingo Weinhold
ef13ad9efd Include dir "private/kernel/util" not longer needed, since we already have "private/kernel" and include <util/...>.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11187 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-02 01:20:35 +00:00
Ingo Weinhold
bed68f2088 DoublyLinkedList lives in the <util/DoublyLinkedList.h>.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11186 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-02 01:16:26 +00:00
DarkWyrm
f3721fd1d7 Tweaked the GetSystem font calls to prevent memory leaks
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11184 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-01 23:23:45 +00:00
Ingo Weinhold
eb5bc5f924 Added a bit of documentation.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11166 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-31 00:26:30 +00:00
Ingo Weinhold
ea9716dc6e Return B_NO_MEMORY, if the command handler could *not* be allocated. First tests indicate that the messaging service basically seems to be working. Didn't test yet, if that's still true, when an area is full.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11161 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 18:48:38 +00:00
Ingo Weinhold
4eb57a1d3d Added WARNING macro.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11156 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 16:06:31 +00:00
Nathan Whitehorn
fa38d4cac8 Fixed an error in the install script
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11153 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 06:11:06 +00:00
Nathan Whitehorn
4635fa1597 Changed credits to Haiku, separated out version history from readme, updated version history, and updated contact information.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11151 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 06:01:32 +00:00
Nathan Whitehorn
82f183b2de Bumped MDR version number to 3.0.2.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11147 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 05:43:05 +00:00
Ingo Weinhold
d0e2e53903 * Added missing MessagingCommandHandler methods.
* Added a class for handling "send message" commands and install by
  default. At least in theory messages issued by the kernel should now
  be delivered to the target. Still untested.
* Added lock to protect the command handler map.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11144 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 01:17:09 +00:00
Ingo Weinhold
c6dbc50e2b * Added per-port sanity limits. We limit the number and summed size of
messages.
* We now maintain a second message list per port, which is sorted by
  timeout time. Thus we can drop timed out messages as early as possible.
* Fixed a bug which caused messages to disappear in the port list.
* Now delete a port not only when an error occurred when delivering a
  message, but also when it is empty.
* More debug output.

Seems to be working well now.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11142 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 00:54:59 +00:00
Ingo Weinhold
0353d33137 Added kernel util header for DoublyLinkedList.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11141 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 00:48:08 +00:00
Ingo Weinhold
634f747e29 Now we use the MessageDeliverer to send asynchronous messages to other apps. Seems to work when the target port is not full. The other case has not been tested yet.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11133 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-29 17:49:32 +00:00
Ingo Weinhold
f64fc02f89 Added another DeliverMessage version for broadcasting.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11132 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-29 17:45:59 +00:00
shadow303
b9717a7150 Long overdue fixes for internal API change, now if I could just unbork my system enough to test them...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11115 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-29 00:19:38 +00:00
Stephan Aßmus
aaea96798d the version for B_OP_COPY that ignores the pattern and uses the color from the AGG renderer directly, thus the renderer color needs to be set up correctly, which Painter does take care of
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11113 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-28 21:49:00 +00:00
Stephan Aßmus
884e8bc6b5 flag for using a solid version of a DrawingMode, currently only B_OP_COPY actually has an implementation
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11112 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-28 21:45:59 +00:00
Stephan Aßmus
597841da50 trying to optimize for B_SOLID_XXXX, implemented separate _SetPattern function, which encourages usage of a special DrawinMode instance, but it is currently not used, because it didn't give much speedup.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11111 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-28 21:44:38 +00:00
Jérôme Duval
a77de570a2 useful pieces of code
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11107 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-28 18:46:36 +00:00
Stephan Aßmus
4f6cd6ef55 some additional status information
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11101 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-28 13:10:06 +00:00
Stephan Aßmus
d4734e04d1 support for switching the alpha drawing mode when the blending mode changes
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11100 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-28 13:07:21 +00:00
Stephan Aßmus
8eca754bfd support for the rest of the drawing modes
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11099 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-28 13:05:37 +00:00
Stephan Aßmus
3741b755dc huge clean up
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11098 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-28 13:02:27 +00:00
Stephan Aßmus
681c4b3ba5 rest of the drawing modes
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11097 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-28 12:59:17 +00:00
haydentech
c0e4d12489 AS_LAYER_POP_STATE was inadvertantly deleting the entire layerdata stack instead of just popping the top one off
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11096 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-27 23:16:28 +00:00
Ingo Weinhold
d306a4652c * Added a timeout to the delivery functions. This is the time after which
the message will be finally dropped. Makes sense for periodic message
  runners for instance.
* Set the target of a BMessage before flattening it. Thus there will be
  space in the flattened header for it.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11071 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-26 15:18:29 +00:00
Axel Dörfler
e4e9b6a7a4 The input_server now works on R5 and on Haiku (depending on COMPILE_FOR_R5).
Fixed two minor warnings.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11063 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-26 03:45:13 +00:00
Ingo Weinhold
56833e831f Implemented the actual message sending. The implementation is complete now, but still untested.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11062 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-26 02:20:28 +00:00
Jérôme Duval
3d64143151 added code for a bottom line window, not working
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11053 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-25 23:42:59 +00:00
Adi Oanca
faa0ed6a33 s/(c) 2001-2002, OpenBeOS./(c) 2001-2005, Haiku, Inc.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11039 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-25 20:44:09 +00:00
Ingo Weinhold
757bc7b934 Renamed Referencable to Referenceable (mainly to make Axel happier :-).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11035 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-25 16:10:03 +00:00
Ingo Weinhold
2c17b743c7 Implemented all missing functionality save the actual sending of a
flattened message. Support for this needs to be added to BMessage first.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11034 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-25 16:05:26 +00:00
Ingo Weinhold
42be32659a TRoster is no longer a friend of BMessenger -- use BMessenger::Private.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11032 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-25 15:08:15 +00:00
Ingo Weinhold
35d70f9eca The MessagingService is now a singleton. Added creation of the MessageDeliverer.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11031 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-25 15:06:42 +00:00
Ingo Weinhold
c36e75d1cb Added Referencable.cpp and MessageDeliverer.cpp.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11030 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-25 15:04:52 +00:00
Ingo Weinhold
2467cef0f0 This class encapsulates the service delivering messages without dropping
them immediately when the target port is full at the moment. It's not
quite complete. The data structures are there, but the actual delivery is
still missing.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11029 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-25 15:04:05 +00:00
Ingo Weinhold
47e01f5075 Added helper class Referencable (a simple base class for reference counting).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11028 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-25 15:00:12 +00:00
Ingo Weinhold
73895a69a0 * Added the class MessagingCommandHandler, instances of which can be
registered as handlers for specific commands sent by the kernel.
  (Beautifully object-oriented :-)
* Fixed a bug regarding MessageArea creation (the object was deleted
  twice on error).
* Actually resume the command processor thread.
* Turned the class into a singleton.
* Now always process all commands found in an area (should minimize
  latencies).

Modulo bugs the class is now complete.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11027 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-25 14:58:37 +00:00
Adi Oanca
574540edd2 Removed a redundant BMessage when mouse button was pressed. This message is already sent by WinBorder::MouseDown(). Window content was redraw when a window became active. Removed some code that anyway was not used. It will be replaced by the new window manager which is comming soon.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11012 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-24 21:04:23 +00:00
Adi Oanca
c4e214743d All 'Invalidate' methods are now private, intended for RootLayer's use only.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11011 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-24 20:59:27 +00:00
Adi Oanca
304feb8ad5 RebuildAndForceRedraw() is not needed anymore
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11010 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-24 20:57:51 +00:00
Adi Oanca
bd1ede2ae9 Yes... I really don't remember why I haven't subclassed FMWList from BList...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11007 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-24 17:34:47 +00:00
Adi Oanca
383461c7ee 3 global variables (gRedrawReg, gCopyRegList, gCopyList) went into RootLayer's property
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11006 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-24 17:18:19 +00:00
Ingo Weinhold
dd43b03ce1 Added the messaging service and a compatibility file for the R5 test registrar.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10999 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-24 01:32:17 +00:00
Ingo Weinhold
0a1eb226fb Start the messaging service. Due to missing kernel functionality the
initialization still fails.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10998 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-24 01:31:02 +00:00
Ingo Weinhold
cdab464e30 New macro for non-fatal, but nevertheless serious errors.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10997 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-24 01:29:24 +00:00
Ingo Weinhold
c72f8221e0 File we only compile in for the obos_registrar, the one for testing under R5. Contains dummies for syscalls not existent there.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10996 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-24 01:28:33 +00:00
Ingo Weinhold
9e4d0f686e The beginning of the registrar-side kernel->userland messaging service.
The passing of commands from kernel to registrar should be complete now,
only the actual message delivery is missing.
Completely untested yet.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10995 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-24 01:26:39 +00:00
DarkWyrm
c0dc91fc00 Since last checkin version had no description:
Huge amounts more debug output available
Resolved several timing issues
Fixed a major problem with sending mouse messages to the server when emulating the input server
There are still stability issues with initial startup
Still some drawing problems
It *works*!


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10981 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-23 18:59:50 +00:00
DarkWyrm
2471ba9f3d Cleaned up driver init section of Desktop -- worry about multiple drivers only with AccelerantDriver
RootLayer: debug output fixes and removed a compiler complaint


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10980 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-23 18:22:48 +00:00
DarkWyrm
c36b4a4409 messaging fixes to RootLayer and ViewDriver
minor tweaks to ServerWindow


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10977 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-23 15:39:01 +00:00
DarkWyrm
7605e77d21 Added GetFamilyAndStyle
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10975 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-23 13:40:11 +00:00
Adi Oanca
63f09583e3 Oups. Layer::MoveBy/ResizeBy() escaped me. :-) The actions they used to perform are now executed only by RootLayer's thread.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10972 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-22 23:25:41 +00:00
Adi Oanca
b4fe86df56 Yes... B_FULL_UPDATE_ON_RESIZE on Layer resize not with every redraw. :-D
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10966 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-22 21:51:39 +00:00
Philippe Houdoin
5af2ee7384 Ooops, rollback, this stupid change was erronously still lying there...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10964 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-22 21:35:39 +00:00
Philippe Houdoin
5a9677b8ed Fixed the "unused frame variable" warning.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10963 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-22 21:26:18 +00:00
Adi Oanca
ed446d324d ServerWindow.cpp:
* made MonitorWin thread wait until associated WinBorder is hidden
and RootLayer's lock is acquired.
RootLayer.cpp:
	* added 2 public methods for calculating visible regions.
ALL:
	* all previous 'Invalidate' methods now call RootLayer's ones.

	That's it, all region calculations are done in the context of the
high priority thread: WorkingThread.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10961 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-22 20:51:12 +00:00
Adi Oanca
864a2c6456 Window showing/hiding is now done in RootLayer::WorkingThread's context
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10938 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-21 21:18:25 +00:00
Adi Oanca
f6e53a25ec No need to lock anymore when calling ServerWindow::SendMessageToClient()
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10937 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-21 21:16:15 +00:00
Adi Oanca
6a257c30a9 Moved window moving code from ServerWindow. CPU consuming operations now run win WorkingThread's context. Added locking mechanism for WorkingThread. Removed locking arround ServerWindow::SendMessageToClient().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10936 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-21 21:13:00 +00:00
Adi Oanca
1cd22df0dc Added 2 private methods for showing/hiding WinBorders. Added a BLocker member.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10935 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-21 21:09:06 +00:00
Adi Oanca
fde7aed2ee Moved 'Invalidate' calls in RootLayer.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10934 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-21 21:06:59 +00:00
DarkWyrm
56bead3235 Implemented ServerFont::SetFamilyAndStyle(id,id)
Other API tweaks to ServerFont
Style changes in ServerFont


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10928 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-21 13:13:08 +00:00
DarkWyrm
de48335a77 Added handlers for a few unhandled and unimplemented BView calls
BView::GetMouse won't block the app for now, at least


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10923 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-21 02:01:28 +00:00
Stephan Aßmus
08f1d3c965 refactoring and cleanup
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10921 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-20 23:26:13 +00:00
Stephan Aßmus
34651df507 extracted general blending function
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10920 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-20 23:24:02 +00:00
Stephan Aßmus
f71ffba994 implemented more drawing modes, refactored a little, still work left to do...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10918 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-20 23:07:07 +00:00
Stephan Aßmus
95ff0e4fe8 Maybe I have actually nailed bitmap scaling, though I would think that the BView implementation doesn't exactly follow the Be Book. Could be I'm overlooking something. Anyways, Painter seems to behave like the original now. The previous revision had a compile error too for aliased drawing.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10917 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-20 22:57:17 +00:00
Adi Oanca
84b62fccc0 * closing a window no longer takes you to debugger
* send mouse_[move/up/weel] only if the cursor is inside a window(not
above decorator)
* added WinBorder::MouseWheel()


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10912 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-20 18:39:08 +00:00
Adi Oanca
8357c93db5 Fixed that annoying cursor bug where the window dissapeared on moving
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10907 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-20 17:30:37 +00:00
Stephan Aßmus
30fd3eb18a line profile is now cached by being a member of Painter, as was suggested by Maxim, it's too heavy an object for being created on the fly
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10905 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-20 15:23:23 +00:00
Stephan Aßmus
db94952b4f updated info
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10904 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-20 14:54:42 +00:00
Stephan Aßmus
8cd6385cfe adopted for different PatternHandler version
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10903 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-20 14:27:08 +00:00
Stephan Aßmus
cb8e43abdf now integrated with Haiku build system, so no more need for this
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10902 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-20 14:23:07 +00:00
Stephan Aßmus
2e4822e67d new B_OP_ADD drawing mode
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10901 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-20 14:15:58 +00:00
Stephan Aßmus
9e89de2ca6 adopted to different PatternHandler version
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10900 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-20 14:14:50 +00:00
Stephan Aßmus
1b837c4b6b there can only be one
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10899 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-20 14:13:10 +00:00
Stephan Aßmus
7ca3c69091 added some convinience functions to handle rgb_color additionally to RGBColor
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10898 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-20 14:10:11 +00:00
Stephan Aßmus
0a86682dd0 this code is part of the Painter testing framework, and thus doesn't belong here
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10893 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-20 12:53:26 +00:00
Stephan Aßmus
ba35b5d77d this file has been moved to headers/private/servers/app
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10891 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-20 12:44:07 +00:00
DarkWyrm
7a5829aab1 Made modifications to send keyboard messages to client applications
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10888 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-19 18:59:41 +00:00
Adi Oanca
aea21365e7 Cursor operations are made through RootLayer's(ATM, the only one) CursorManager and visible settings directly call RootLayer's DisplayDriver.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10887 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-19 18:00:05 +00:00
Adi Oanca
3b5df3c151 'cursormanager' not global anymore
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10886 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-19 17:55:50 +00:00
Adi Oanca
eb7b20d820 RootLayer now has a stack allocated CursorManager
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10885 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-19 17:54:03 +00:00
Adi Oanca
f9ef06250c FindCursor is now public
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10884 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-19 17:52:53 +00:00
DarkWyrm
4e9042b685 Fix build
Remove a NULL pointer reference in debug code


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10883 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-19 17:35:17 +00:00
Adi Oanca
4431e07a3a a BList member is allocated on stack now
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10878 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-19 16:46:36 +00:00
DarkWyrm
0d9d87e7f2 Debug output tweaks and changed temporary cursor-related debugger calls to printf's to make other development less annoying
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10876 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-19 15:12:35 +00:00
Ingo Weinhold
1f071637ed Don't link against the libfreetype.so in ~/config/lib as we don't build it
anymore. If you want to have a symlink there, just create it.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10874 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-19 14:23:43 +00:00
DarkWyrm
b8fb69518c Reintegrating Bill Hayden's changes to FontStyle::ConvertToUnicode in some currently-disabled code
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10858 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-18 23:18:37 +00:00