Commit Graph
100 Commits
Author SHA1 Message Date
Axel Dörfler c8609aed8c * Now allocates enough memory for virtual screens.
* Implemented untested B_MOVE_DISPLAY - note, the page_flip demo doesn't work
  yet (didn't investigate yet, though).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17432 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-12 11:46:14 +00:00
Axel Dörfler 1c9d6e5902 Calmed down overlay a bit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17429 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-12 09:34:20 +00:00
Axel Dörfler d906e6a03e * Implemented B_FILL_SPAN - I am not sure if it's used at all, though, so
I am also not sure if it's working correctly.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17425 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-11 16:10:09 +00:00
Axel Dörfler efeb77268d Say hello to B_FILL_RECTANGLE and B_INVERT_RECTANGLE - only B_FILL_SPAN is missing
from the acceleration hooks in BeOS.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17424 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-11 15:24:34 +00:00
Axel Dörfler 030d964e4e Made the primary ring buffer for the acceleration commands a bit larger (16 KB);
this is mostly done because of the fact that I haven't tested how full it usually
is, and since I haven't implemented checking for free space yet...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17423 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-11 15:22:35 +00:00
Axel Dörfler 5462d44020 * Turns out the virtual messes with the data in struct command, so we can't
use it (which isn't really that bad).
* B_SCREEN_TO_SCREEN_BLIT is now working as intended, so we can finally move
  windows and scroll at decent speed :-)
* Implemented a simple version of B_WAIT_ENGINE_IDLE for now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17422 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-11 14:12:02 +00:00
Axel Dörfler 140e4f87c8 If you switched between a 32 bit mode and another, hardware acceleration was accidently
turned off - note also, that only the 32 bit mode is currently hardware accelerated!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17421 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-11 13:13:53 +00:00
Axel Dörfler 2ace35ed22 Started implementing screen-to-screen blits, not yet tested.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17416 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-10 18:53:20 +00:00
Axel Dörfler 6c67d64cad Prepared support for acceleration: there is now a QueueCommands class that should
be used to feed the ring buffers with new commands. It takes care about proper
alignment (this shouldn't be necessary in the final version, anymore, though), and
locking.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17415 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-10 16:09:28 +00:00
Axel Dörfler fc88cd9396 * The Y/RGB and UV registers for the integer downscale factor are reverse to
the usual order of other registers, so I mixed it up: vertical downscaling
  is now working as expected as well.
* The downscaling factor was a tiny bit too low (one pixel from the view).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17414 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-10 14:48:38 +00:00
Axel Dörfler e3fe0cd725 This didn't even read out the page table register, it read something from address
0x2020, which resulted in a page fault under Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17413 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-10 13:12:57 +00:00
Axel Dörfler 08ef16abee * Now allocates space for the hardware status page and cursor memory, not yet
used, though.
* Renamed the PhyisicalPageMapper class to AreaKeeper and made it a bit more
  generic (ie. it can now also create usual areas)
* The shared_info is now created using the AreaKeeper, too, and this actually
  fixes some potential memory leaks.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17412 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-10 12:37:27 +00:00
Axel Dörfler 96451fe133 We're now using a secondary (high priority) ring buffer for hardware
overlay - this will improve the overlay performance when the engine is
under load (the acceleration engine will use the primary lower priority
ring buffer).



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17411 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-10 10:54:39 +00:00
Axel Dörfler 6bd70a559d You can now safely move the overlay off screen completely, without having to
worry that the graphics chip is fried.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17410 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-10 10:21:43 +00:00
Axel Dörfler c415480607 * an overlay_view::{h|v}_start different from 0 is now supported
* The overlay_view is now also correctly clipped when you move the overlay
  window offscreen to the left or to the right.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17402 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-09 19:34:58 +00:00
Axel Dörfler 72119ffac8 Included the phase coefficient computation from the X driver implementation.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17401 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-09 18:31:25 +00:00
Axel Dörfler d2a76f7406 The lround() and lroundf() functions are now also found in our math.h header.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17400 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-09 18:14:11 +00:00
Axel Dörfler d13fd67ac0 Imported lround() and lroundf() from glibc.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17399 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-09 18:12:35 +00:00
Axel Dörfler 18f48919c0 This little fix should allow Stippi to have a working driver when he compiled
it himself.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17397 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-09 16:11:15 +00:00
Axel Dörfler f197302867 The size of the stolen memory for the graphics chip is now read out of the host bridge.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17381 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-09 01:00:58 +00:00
Axel Dörfler 9a6bbd514e Once libroot's getenv() is available, that one will be used instead of the one built in.
This makes the runtime_loader able to adopt path changes properly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17380 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-08 23:50:09 +00:00
Axel Dörfler d50e3eb20e Some quick clipping of the destination window to let VLC successfully leave full
screen mode, and let's you move the window off screen without too many problems
(if you'll move it off screen to the left side (or top), then you won't see the
contents you'd expecting).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17368 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-08 18:08:09 +00:00
Axel Dörfler 9cf9eedf9f The other color spaces now seem to work as well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17367 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-08 16:11:51 +00:00
Axel Dörfler 2465e30305 Accidently set the contrast too low, overlay now looks just fine.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17366 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-08 15:32:52 +00:00
Axel Dörfler f8bea0dacb * Turns out you must not set the source width/height UV registers (for planar
mode), but you have to set the scaling UV registers in order to have correct
  overlay.
* In other words, overlay is working now! There are still issues with it, which
  can probably be attributed to missing bounds checks (the screen goes black
  when you leave full-screen mode in VLC - but not if overlay just stops).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17365 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-08 15:31:41 +00:00
Axel Dörfler 5dfe4fc749 Build fix for Dano.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17359 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-07 20:54:42 +00:00
Axel Dörfler 4eb16023d1 Marcus' change had a point, though: we now handle the first mode switch differently
in that we try really hard to let it succeed. If setting the desired mode failed,
we now try almost anything to get a working mode.
Since the kernel also knows the VESA mode, maybe we should better ask that one for
the current mode, as most drivers probably haven't got B_GET_DISPLAY_MODE implemented
in the we're using it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17355 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-07 18:07:37 +00:00
Axel Dörfler ae219f104e Reverted the wrong part of Marcus' earlier patch. However, I made it a bit more
safe in the sense that it no longer clobbers fDisplayMode in case B_GET_DISPLAY_MODE
fails. This fixes bug #564 resp. #566.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17353 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-07 17:00:32 +00:00
Axel Dörfler b30d7f0e05 * Now calls BApplication::HideCursor() on creation and ShowCursor() when it's
disconnected (so that you can still just call ShowCursor() to have it back,
  in case you want that).
* Rewrote WindowScreen.h.
* Cleanup, removed unused variables, renamed private methods.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17349 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-06 17:08:12 +00:00
Axel Dörfler 3df31bf306 * Fixed SetColorList(): it set the color table as array of rgb_colors, but it's
an array with 3 byte per color only - this fixes the page_flip demo as part of
  the sample code.
* Renamed mode2parms() to get_mode_parameter(). Also, it will now return "false"
  on unknown mode values so that SetSpace() will fail instead of setting some
  random mode.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17348 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-06 13:56:15 +00:00
Axel Dörfler 0e836b16bd * Fixed Select(), and Deselect*() to only send notifications if the selection
really changed - this fixes bug #519.
* Archiving the object now returns an appropriate error message if something
  goes wrong (instead of B_OK).
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17347 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-06 11:26:31 +00:00
Axel Dörfler 630e0d5f82 Looks like there is an ancient bitmap archiving format that doesn't know about
bytes per row or flags. This fixes bug #518.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17346 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-06 10:04:05 +00:00
Axel Dörfler 241893e0de Added icons for images and text/plain.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17343 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-05 18:39:48 +00:00
Axel Dörfler db40254ac8 Floating windows are always closable, no matter if they have focus or not.
This fixes bug #558; Cortex floating windows have the B_AVOID_FOCUS flag set.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17341 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-05 17:04:16 +00:00
Axel Dörfler 95dfa2f806 For B_CMAP8 modes, the system palette is now set after the mode switch.
8 bit modes should now work fine under Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17340 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-05 16:18:18 +00:00
Axel Dörfler 94f8a931c8 B_SET_INDEXED_COLORS is now working correctly for B_CMAP8, IOW you can now use
8 bit modes with this driver as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17339 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-05 16:17:11 +00:00
Axel Dörfler 2bbc6df8dc * The kernel now remembers the signal that killed a thread (if it was killed).
* As suggested by Korli, the signal is now encoded in the "reason" field of
  wait_for_child().
* waitpid() now sets the status passed in so that the signal can be read out
  (but it still doesn't do it's full job).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17338 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-05 15:33:34 +00:00
Axel Dörfler 074ebdda4a * When mounting an image, BFS no longer tries to set the file into uncached mode - this
will waste some memory (as the data will be cached twice), but unlike BeOS, it cannot
  deadlock the cache, so it's safe to be used. In other words, mounting images is now
  working as expected.
* a BFS FATAL() condition no longer results in a KDL; this seemed to confuse anybody :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17336 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-05 11:21:00 +00:00
Axel Dörfler 3cb039fffa When you try to mount a file image, BFS now only sees the normalized path instead
of the one supplied to fs_mount() (but not the /dev/disk/virtual/... entry, as that
wouldn't be that clear to the user).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17335 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-05 11:17:08 +00:00
Axel Dörfler 65bd831cbb * KDiskDeviceManager::_ScanPartition() can now run synchronously (and execute the
scan job in the calling thread).
* KDiskDeviceManager::InitialDeviceScan() now runs synchronously, so that
  get_boot_partitions() doesn't need to do this ugly wait hack.
* KDiskDeviceManager::CreateFileDevice() can now run synchronously as well, which
  fixes a deadlock in fs_mount() - note, mounting file devices still doesn't work,
  though as Haiku's BFS doesn't allow this right now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17334 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-05 10:54:10 +00:00
Axel Dörfler b02b72c448 Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17333 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-05 10:44:07 +00:00
Axel Dörfler dde52de872 * _NewReadLockInfo() can no longer crash in case the allocation failed.
* _ReadLock() will now fail with B_NO_MEMORY in case the ReadLockInfo couldn't
  be created.
* Note, due to a design bug, we cannot guarantee that a previous read lock
  can be reestablished after releasing a write lock in case of low memory.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17332 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-05 10:10:05 +00:00
Axel Dörfler da09cca402 * Changed the way the overlay_view|window is maintained - it's now in Overlay.
* The overlay options as part of BView::SetViewOverlay() are now passed over
  to the graphics driver - looks like the color key stuff cannot be turned
  off (at least not via the Be API).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17323 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-04 20:25:19 +00:00
Axel Dörfler 050c3467fc * Turns out Haiku's app_server used a different color key mechanism than R5 (it's
fixed now). Tested overlay color keying okay in all supported color spaces.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17321 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-04 14:55:21 +00:00
Axel Dörfler 458c9bfb2f The color key is now correct for other modes than B_RGB32 as well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17320 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-04 14:53:05 +00:00
Axel Dörfler fe19cff624 No longer invalidates the view when an overlay bitmap is updated.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17319 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-04 11:21:36 +00:00
Axel Dörfler f8915230d5 Removed check for fAddonImage in CanControlFrameBuffer() - according to Rudolf, this
method should return the correct value before the accelerant is cloned.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17318 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-04 11:12:40 +00:00
Axel Dörfler fe01155b84 * Removed the (200, 200) inset.
* fOldMode is now set to the current display mode.
* Now checks semaphore creations and memory allocations for failure.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17317 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-04 10:55:01 +00:00
Axel Dörfler 7fa10e9922 Added intel_extreme driver to the image. Shouldn't do any harm, at least :)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17316 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-04 10:24:31 +00:00
Axel Dörfler 6a3543db2a * Finally the overlay looks like an overlay. It took me almost a day to realize that
the Intel chip obviously cannot do overlays in B_RGB16 - even though it pretends
  to be able to do that.
* B_YCbCr422 seems to work, though, I haven't tested any other spaces for now, and
  I somewhat doubt they will work. It's all green, though, and the scaling doesn't
  seem to be correct - that we be solvable, though :)
* There aren't any bounds checks (so don't move the window out of the screen), and
  also the overlay_view offsets are ignored.
* Scaling and moving is now detected, and there is always as little work done as
  possible to reduce the workload on buffer switches (the most common case).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17315 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-04 09:08:26 +00:00
Axel Dörfler bb40a68547 * The mapping is now also removed from the area list in case creating the
area failed.
* "base" is no longer used uninitialized in combination with B_BASE_ADDRESS.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17304 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-03 10:14:36 +00:00
Axel Dörfler 6736b21a2a This should fix the wrong handling of BView::ClearOverlay() - probably, I haven't
tested it :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17301 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-02 21:22:56 +00:00
Axel Dörfler f4c4106a40 * Doh, I had done all bitfields in the wrong direction (msb to lsb, but it's actually
lsb to msb).
* The result is that there is now *something* to see when overlay is turned on. In
  fact the whole screen goes dark besides a few pixels on the top - now isn't that
  something? :-)
* The overlay is also turned off again correctly - which also revealed a bug in our
  app_server: B_CONFIGURE_OVERLAY is not always called with window=NULL/view=NULL
  to turn off overlay (might be an incorrect handling of BView::ClearOverlay()).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17300 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-02 21:16:17 +00:00
Axel Dörfler 4f4035561f Hacked AccelerantHWInterface::GetDriverPath() to call the accelerants
B_GET_ACCELERANT_CLONE_INFO (as that's what the caller actually wants).
Unfortunately, it's currently hard-coded to path names, that is, if there
is a driver out there that doesn't follow this quasi standard, it will
break this mechanism.
We should either change the driver interface to explicetly use path
names, or change the mechanism we're using (in BWindowScreen upwards to
the app_server) to the one as thought by Be.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17299 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-02 20:17:45 +00:00
Axel Dörfler 6c858b7022 * Added the AGP bus manager module to the build.
* Made the graphics drivers/accelerants x86 only, as requested by Rudolf.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17298 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-02 19:10:10 +00:00
Axel Dörfler c923ce2ed2 Minor cleanup, and thanks for the fix, Rudolf! :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17296 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-02 14:17:47 +00:00
Axel Dörfler 797de116a2 * Loading and saving the settings was completely broken. I've moved to a different
file and put the window position there; loading/saving of the translators settings
  looks broken in (or rather, missing from) the Translation Kit as well.
* Now uses the new watching mechanism of BTranslatorRoster to keep track of new
  translators.
* Installing translators now gives better error requests, it now no longer uses
  undocumented BTranslatorRoster functionality, but the new IsTranslator() method
  to check if a certain file is a translator.
* Copying translators is disabled for now, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17292 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-02 00:23:22 +00:00
Axel Dörfler 1826d5c8b2 * Node monitoring didn't work correctly, as the directories were not remembered
accidently.
* Additionally, B_ENTRY_MOVED worked not correctly, as the entry_ref for the
  new entry was built upon the wrong node_ref.
* The default translator now also makes sure that the default system paths
  exist. This helps node monitoring as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17291 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-02 00:14:54 +00:00
Axel Dörfler 3e54c13abc * Fixed BDirectory::SetTo(BDirectory*, path) constructor in case the target
directory was "this".
* Fixed storage_support.h header - didn't include all needed headers.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17288 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-01 16:55:46 +00:00
Axel Dörfler 9991d2b1ac * Applied patch by G. Zachrisson to fix the endless loop in _FindNextNavigable().
* Rewrote broken _FindPreviousNavigable() - it now does the exact opposite of
  _FindNextNavigable().
* Both methods did not ignore hidden views - they now do.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17287 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-01 14:57:49 +00:00
Axel Dörfler 29dfc8d391 The BTranslatorRoster now locks the looper before it adds/removes it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17281 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-30 18:18:06 +00:00
Axel Dörfler 573c4336a3 Implemented quite a hack to solve the lockless get_memory_map() problem (bug #349):
when called with interrupts turned off, get_memory_map() will now call the new
vm_translation_map_ops::query_interrupt() call.
Under PPC, this is trivial (at least right now), but on x86 we need to make sure
we have access to the page table entry, ie. we need to create an area that points
to its own page table entry, so that we can map in the page table entry containing
the address we're looking for. It's not really nice, feel free to come up with
a cleaner solution :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17280 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-30 17:45:33 +00:00
Axel Dörfler 26f4e1eba8 Reenabled interrupts in the radeon driver.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17279 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-30 13:57:47 +00:00
Axel Dörfler 77a08c68e8 Changed the way handlers for edge triggered interrupt are called: now, we
always call all handlers in this case, but we still try to return the correct
return code (ie. B_HANDLED_INTERRUPT and B_INVOKE_SCHEDULER).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17278 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-30 13:56:21 +00:00
Axel Dörfler f7a446f46f Oops, actually forgot to press "save" in the editor to include the real thing...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17277 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-30 13:44:24 +00:00
Axel Dörfler 99df69077c For level triggered interrupts, we now acknowledge the interrupt after having called
the interrupt handlers, not before (like we do for edge triggered ones).
This should prevent hardware from issuing a second interrupt when the software driver
is still busy handling the first.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17276 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-30 13:43:05 +00:00
Axel Dörfler 5886ae3213 Finally (!) fixed that stupid bug that prevented at least some Pentium-M laptops to
work correctly when on power supply (ie. when running at full speed). Turns out we
misdetected a spurious interrupt on line 15 - we now ignore them completely which
seems to fix that problem.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17275 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-30 13:35:53 +00:00
Axel Dörfler 783f7f20bd * Implemented support for node monitoring - you can now be notified when new
translators are installed via BTranslatorRoster::StartWatching().
* Fixed GetTranslatorData() - some hooks are only optional (this puts the
  JPEG, GIF, and some other translators back into the game).
* Made BTranslatorRoster::Default() thread-safe.
* Improved documentation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17267 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-29 18:02:46 +00:00
Axel Dörfler 9c418bc0f9 Fixed warning.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17259 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-29 14:08:32 +00:00
Axel Dörfler 50823fe5c5 Fixed a couple of bugs that prevented it from working as it should - dunno
how this didn't show up earlier.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17256 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-28 18:23:54 +00:00
Axel Dörfler 36320fa847 The interrupts are now only disabled for the Haiku build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17255 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-28 17:15:05 +00:00
Axel Dörfler 7740a4c15b Enabling overlay requires a command ring buffer, and we're setting one (very
small) up for this specific task - this will later be used for the acceleration
engine as well.
Some more work on overlay initialization, doesn't do anything yet, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17254 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-28 16:50:39 +00:00
Axel Dörfler d7424bc790 Fixed build of the test environment as reported by Stephan.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17253 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-28 11:09:48 +00:00
Axel Dörfler f90e454336 * More or less rewrote BTranslatorRoster - it now has a private implementation
class, and only wraps around that one.
* Translating is no longer serialized, you can translate more than one object
  at a time now.
* A BTranslator that is released (ie. deleted) will no longer let its BTranslatorRoster
  crash.
* Removed BTranslatorRoster::Version() - this kind of call definitely makes no
  sense at all. It's still exported from the sources, though, for backwards
  compatibility.
* Simplified and improved code.
* Images are now unloaded only once.
* Added new method IsTranslator() that will be used by the DataTranslations preferences
  application.
* Began implementing new methods StartWatching()/StopWatching() that will notify
  you if new translators are installed or old ones removed (this will also be used
  by DataTranslations once it's ready).
* The private BTranslatorRoster class will now add itself to the existing BApplication,
  in order to provide automatic updating of the translators if needed (not yet implemented
  though).
* Not heavily tested yet, there might be some regressions.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17247 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-27 18:40:28 +00:00
Axel Dörfler 11add5a5d7 First baby step towards a lockless get_memory_map(): vm_get_current_user_address_space()
no longer needs to lock address space hash table - that also makes the lookup much
faster, too (and a direct pointer is used instead of a hash lookup).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17246 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-27 17:46:19 +00:00
Axel Dörfler fe2b2c822f * The window is now maximized on startup if there is no settings file.
This fixes bug #407.
* The OpenWindow was not really font-sensitive (fixed window size).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17245 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-27 17:43:47 +00:00
Axel Dörfler 22d4db9280 * Added overlay register definitions.
* The overlay register update buffer is now created and exported, ready
  to be used.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17244 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-26 17:50:30 +00:00
Axel Dörfler eea30ef36c Maybe I shouldn't have forgotten to commit this (didn't break the build, but
overlay didn't even pretend to do anything).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17243 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-26 13:36:41 +00:00
Axel Dörfler b907a5acab Implemented overlay management. The hardware doesn't notice them yet, though :)
(but the app_server thinks they're working).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17242 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-26 12:55:07 +00:00
Axel Dörfler 506edb4fca Fixed build under R5.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17241 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-26 12:51:50 +00:00
Axel Dörfler 93820f1ea7 Renamed moreUTF8.h to utf8_functions.h.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17239 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-26 10:16:19 +00:00
Axel Dörfler 3691c680c4 Fixed build of the fake_app_server - there still were some references to
SERVER_TRUE/FALSE.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17238 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-26 09:56:55 +00:00
Axel Dörfler e55d041b59 Finally removed SERVER_{TRUE|FALSE} and lots of other unused constants from ServerProtocol.h.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17237 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-26 09:33:08 +00:00
Axel Dörfler 23ae77aa56 * Removed ColorSet, it's no longer needed or used.
* The Decorator are temporarily using ui_color() - this needs to be changed
  to use the DesktopSettings (when the decorator stuff gets refactored); right
  now, the colors are fixed.
* Added B_WINDOW_TEXT_COLOR, B_WINDOW_INACTIVE_TAB_COLOR, and
  B_WINDOW_INACTIVE_TEXT_COLOR to the UI colors, B_WINDOW_TAB_COLOR is no
  longer deprecated. Note, however, that not every decorator may use these
  colors.
* Removed unused and wrong (ie. hard-coded paths) stuff from ServerConfig.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17236 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-26 09:03:28 +00:00
Axel Dörfler 583b05be46 Errors in Desktop::Init() and Desktop::Run() are now taken into account correctly.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17233 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-25 20:18:01 +00:00
Axel Dörfler 6d5488e18a * There is now a server_read_only_memory structure that is placed in a (surprise!)
read-only area shared between the Desktop and all applications.
* Right now, this area only contains the desktop colors, ie. B_PANEL_BACKGROUND_COLOR
  etc.; ui_color() no longer needs to ask the server for these colors.
* The ui_colors are now maintained by DesktopSettings, though ColorSet is still there.
* The default colors are now hardcoded once and for everyone in InterfaceDefs.h, ie.
  the app_server uses them as well.
* Desktop::Init() can now also return an error (but that is not yet accounted for).
* Cleaned up InterfaceDefs.h.
* Fixed wrong include in moreUTF8.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17232 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-25 20:12:06 +00:00
Axel Dörfler 7225520c09 Made the corners of the play button transparent, so they look better with another
background color. Just as a hint to Stephan... :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17231 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-25 11:33:12 +00:00
Axel Dörfler 73988372cd Fixed build under Dano.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17230 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-25 11:20:42 +00:00
Axel Dörfler d59df8688e fclose() should now accept a NULL parameter (doesn't clobber errno, though, as, at
least in theory, that should still contain the error from an earlier operation).
This might fix bug #500.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17228 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-24 23:18:14 +00:00
Axel Dörfler 29a92e4f53 Now checks all calls to Lock() - this should fix buggy apps like Globe in bug #499.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17227 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-24 23:08:45 +00:00
Axel Dörfler 5da6291b99 * Now using Thomas memory manager to manage the graphics memory; allocation
of graphics memory is now possible.
* Changed driver name to start with "intel_extreme" to have a nicer device
  name.
* Renamed frame_buffer* stuff to graphics_memory* as the frame buffer just
  happens to be located somewhere in the graphics memory.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17224 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-24 18:18:46 +00:00
Axel Dörfler e911acae67 Minor debug output fix.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17223 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-24 18:11:36 +00:00
Axel Dörfler 9095e05d8d * Renamed memmgr.c|h to memory_manager.c|h.
* The functions now check the acquire_sem() result.
* mem_freetag() will return an status code now, too.
* Moved the mem_block and mem_info definitions into the source file; no
  reason to have them public.
* You can now give the memory manager a name which it will use for its
  heap area and lock.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17221 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-24 15:09:46 +00:00
Axel Dörfler b793e7b72c No longer hide the "Application X has aborted the shutdown process" message when
that application quits; this just prevented us to see who the culprit is.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17213 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-23 18:15:05 +00:00
Axel Dörfler 621a832488 * Renamed ViewAux.h header to ViewPrivate.h.
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17210 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-23 15:55:15 +00:00
Axel Dörfler 0ac013e66f * Some refactoring: renamed OverlayCookie to Overlay and put it in its own
source file.
* An overlay is now also hidden in case its is removed from the window.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17209 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-23 15:45:35 +00:00
Axel Dörfler f7c7883b9f * We now have working video overlay - even though the overlay_token handling
is currently broken, mode switches probably fail or result in sudden death
  (didn't try) it's good enough for Radeon cards and VLC (might work with
  others as well).
* Implemented follow modes for view bitmaps (wasn't taken into account at
  all before).
* Switched to a darker overlay color for now (dunno what exactly makes a
  good candidate there, but this one is good enough for now).
* Added TODO about a race condition in AS_LAYER_SET_VIEW_BITMAP.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17208 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-23 14:28:48 +00:00
Axel Dörfler 21c8c925d8 * With Rudolf's information about relocating overlays, I changed the way memory
is managed for those bitmaps:
  - the shared client memory mechanism is used to allocate a small overlay_client_data
    structure that contains the actual buffer and a semaphore that you have acquire in
    order to access it.
  - LockBits()/UnlockBits() now have a function: you need to call them before accessing
    the overlay buffer, and you need to keep that lock until you're done with it.
* The overlay cookie is now an extra member of the ServerBitmap class.
* Removed fInitialized from ServerBitmap - IsValid() now just checks the buffer associated
  with the bitmap.
* ViewLayer::Draw() will now handle overlay bitmaps specially and will draw the overlay
  color instead of any contents (this is currently in ugly pink, but will become some
  dark color later on).
* All what's missing from actually being able to use overlays now is to configure
  them so that they are shown on screen. VLC will now show an empty pink window when
  overlay video is enabled.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17201 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-22 16:41:12 +00:00
Axel Dörfler 704c03b9e6 Got rid of that unused and superfluous TokenSpace callback stuff.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17200 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-22 16:29:44 +00:00
Axel Dörfler 9b2a903688 Fixed bug #522 by removing the ScrollBar preferences application - you'll just have
to live with the default settings (which hopefully have *two* arrows per side, though,
won't they, Stephan? :-))


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17199 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-21 22:46:21 +00:00