Commit Graph

54345 Commits

Author SHA1 Message Date
Julian Harnath
e3d7394869 app_server: fix test-app_server for launch_daemon changes
* Make test-app_server work again in a launch_daemon environment

* test_registrar gets a separate signature and port name again so the
  host system can distinguish it from the system registrar

* AppServer is normally a BServer now, however, there can't be two
  BApplications in one team. A class TestServerLoopAdapter is added,
  which becomes the base class of AppServer instead of BServer when
  compiling for libbe_test. It's an adapter class which looks towards
  AppServer as it if was a BServer, but internally it is derived from
  MessageLooper (like the old AppServer before the transition to
  BServer).

  This way, AppServer can stay a BServer in normal builds and it also
  avoids having to use too many #ifdefs to distinguish the two
  versions.
2015-08-23 01:00:32 +02:00
Julian Harnath
801b5d2119 app_server: add pixel alpha composite solid mode
* Same concept as the previously exisiting drawing mode
  implementations for e.g. pixel alpha overlay mode: when pattern
  is solid, provide a separate mode implementation which does no
  unnecessary pattern pixel lookups. This provides a considerable
  speedup in composite mode when no stipple pattern is used.
2015-08-23 01:00:27 +02:00
Julian Harnath
ed7b139e08 app_server: fix direct assignment in alpha pixel composite
* 'alpha' is 16 bit (alpha * cover) in blend_hline_alpha_pc(), so
  compare with 255 * 255
2015-08-23 01:00:23 +02:00
Julian Harnath
01c7304204 app_server: fix comment header in pixel alpha overlay modes 2015-08-23 01:00:18 +02:00
Julian Harnath
64c6e038eb app_server: bilinear bitmap painting: alpha overlay support
* Add support for pixel alpha overlay mode in the optimized bilinear-
  scaled bitmap drawing code of BitmapPainter.
  For now, only BilinearDefault supports this. DrawBitmapBilinear
  gets the colour type and draw mode as template parameters to
  minimize code duplication and allow simple extension with further
  pixel formats and modes.
  Avoids, for this mode, fallback to the slower generic
  AGG-pipeline-based version.
2015-08-23 01:00:14 +02:00
Julian Harnath
79a483ebbf app_server: add alpha masked mode to DrawBitmapNoScale
* Add another mode to DrawBitmapNoScale for drawing bitmaps using
  B_OP_COPY with alpha masks. It behaves like the definition for
  ClipToPicture from the BeBook: pixels with alpha = 0 are ignored,
  pixels with any alpha > 0 are copied.
  Before, this fell back to the slower generic AGG-pipeline-based
  version.

* Some light refactoring
2015-08-23 01:00:09 +02:00
Julian Harnath
f4f05935db app_server: give Painter direct access to alpha masks
* To use alpha masks in optimized drawing code outside of the AGG
  renderer pipeline, we need to allow access to the alpha mask's
  underlying buffer:

  - AlphaMask gets another method which returns its
    clipped_alpha_mask
  - clipped_alpha_mask gets a get_hspan() method which returns a span
    of alpha values without combining it with anything
  - Painter/PainterAggInterface store a pointer to the
    clipped_alpha_mask (in addition to the AlphaMask's scanline
    container)
2015-08-23 01:00:04 +02:00
Julian Harnath
2a58d5432d Merge branch 'master' into app_server 2015-08-15 11:12:35 +02:00
Julian Harnath
e353fe396a app_server Painter: refactoring, extract bitmap drawing
* Extract bitmap drawing from Painter into separate class
  Painter::BitmapPainter. This will allow to add new optimized
  drawing modes without making Painter larger.

* BitmapPainter itself is further decomposed into separate
  (method object) structs per drawing mode (currently, those are:
  generic, no scale, nearest neighbor, bilinear). New optimized
  implementations can be added by writing additional method objects
  and calling them from BitmapPainter.

* DrawBitmapNoScale and DrawBitmapBilinear are implemented using
  CRTP. This removes the function pointer in the 'no scale' version,
  which was previously used to select the row copy type. In the
  bilinear version it untangles the three variants (default,
  low filter ratio, SIMD) into separate methods.

* While BitmapPainter is a nested class in Painter, the specialized
  method objects are not. Instead, the AGG-specific data fields from
  Painter are moved into a new struct PainterAggInterface. This
  struct is passed to the method objects and allows them to access
  the Painter's AGG renderer/rasterizer/scanline containers/etc.

  Alternatives would be to make all the involved structs friends
  of Painter, or nesting them all, or exposing all of Painter's
  internals via getter methods -- all of these would be quite messy.

  The details of the bitmap painting implementations are
  intentionally hidden from Painter: there is no need for it to
  know about their internals -- it does not even know their type
  names. (Nesting or making them friend would expose their type
  names to Painter.)

  Furthermore, there is another level of information hiding between
  BitmapPainter and the DrawBitmap[...] method objects.
  BitmapPainter itself only needs to decide that it uses e.g. the
  bilinear version. It has no knowledge that DrawBitmapBilinear is
  internally made out of several structs implementing specially
  optimized versions.

* Refactoring only, no functional change intended. Performance
  should be unaffected.
2015-08-15 11:12:09 +02:00
Humdinger
26cc9e9e07 Small cosmetics for the preference panel
* Prevent the scrollview from jumping vertically when selecting a service
* Glue the services view to the top
2015-08-11 19:05:04 +02:00
Rene Gollent
422b0ec754 libroot: Fix issue reported in ticket #12291.
fts.c:
- Our fts functions were imported from FreeBSD and consequently did not
  use the same weak alias methodology that most of our glibc-derived
  POSIX functions do. These subsequently wound up clashing with the
  implementation of said functions in current versions of coreutils,
  resulting in assertion failures when e.g. running a program through
  stdbuf, since the BSD-derived functions had different flag constraints
  than their GNU peers. Consequently, this change adjusts the fts_*
  family of functions to similarly be exported as weak symbols so they
  can be preempted.
2015-08-10 17:01:35 -04:00
Michael Lotz
7cef8ca2fe Tracker: Fix regression introduced in hrev49011.
If the view fails to lock because it is actually gone, we obviously
can't use it to return the container, so delete it directly in that
case.

Fixes #12072 and probably #11982 which would then be a duplicate.
2015-08-10 21:48:26 +02:00
Adrien Destugues
1379e2b328 Add packages for 2cdt, d52, radare2 and dependencies. 2015-08-10 19:10:58 +02:00
Adrien Destugues
23efd95ed7 French keymap: add some missing symbols.
Most of the changes inspired from the "fr-latin9" map from Linux, but I
went with a different mapping because we also want some symbols later
introduced in Unicode, and also because we already had a different (and
I think better) mapping for some of the extra symbols in latin-9.

The keymap now features:
* Uppercase accented vowels, cedilla, spanish n with tilde
* Mathematical symbols for multiplication/division
* Spanish reverse exclamation and interrogation points, and interrobang
* Various other symbols from the latin-9 character set
2015-08-09 12:05:57 +02:00
Jérôme Duval
d95c6fc46b Updated curl and openssh packages. 2015-08-09 08:00:19 +02:00
Rene Gollent
03bf949ed4 launch_daemon: Correctly fix #12289 as pointed out by Axel.
- Rather than depending just on mount_server's launch, instead use
  a condition that waits for the volumes mounted event. Had missed
  the existence of this one previously.
2015-08-08 17:12:17 -04:00
Dario Casalinuovo
d796a63b4f MediaKit: Other style fixes
* Thanks to Marcus for reviewing, this is what happen when
  you mess out with the TODO list.
2015-08-08 20:26:28 +02:00
Augustin Cavalier
7d407a1e99 BLooper: Fix inverted check that was causing a port leak.
Fixes #12286. Thanks to ttcoder & jackburton for investigating!
2015-08-08 11:38:16 -04:00
Dario Casalinuovo
6ca16f31cb MediaKit: Style fixes 2015-08-08 15:25:52 +02:00
autonielx
659d55b41b Update translations from Pootle 2015-08-08 06:31:42 +02:00
Rene Gollent
fdc32a3844 Launch configuration: Fix #12289.
- Adjust launch configuration such that media_server requires mount_server.
  Otherwise, if the user has specified sound files for any events that are
  on non-boot disks, these won't be found/loaded properly during the boot
  process.
2015-08-07 22:05:08 -04:00
Augustin Cavalier
f79c173b42 HaikuDepot: Fix 64-bit build. 2015-08-07 21:53:46 -04:00
Andrew Lindesay
b8d10c6dc6 HaikuDepot: Enhancements to the User-Agent header to include the version.
Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Fixes #12262.
2015-08-07 21:17:14 -04:00
Adrien Destugues
3749038b53 MouseDownThread: let thread terminate cleanly.
* Killing the thread leaks resources, and it will terminate cleanly and
safely when the destructor exits anyway.
* Fixes #12293. Thanks to ttcoder, jackburton and bonefish for investigating!
* Does not fix #12286. Going to bissect now...
2015-08-07 21:05:55 +02:00
Jérôme Duval
f6f96d9689 Update lz4 packages. 2015-08-07 17:57:27 +02:00
Jérôme Duval
3470d14d03 Update nano,mpg123,libmikmod,libpng16,libunistring packages. 2015-08-07 17:07:57 +02:00
Rene Gollent
08c57f1d3b Debugger: Fix #12291.
UiUtils:
- Fix incorrect check to see if we had hit the bounds of the current memory
  block that would cause us to overflow the block's data buffer if incorrect
  length values were passed in.
2015-08-06 17:51:15 -04:00
Automatic Committer
33c0e857dc Update usb.ids from www.linux-usb.org 2015-08-06 05:20:31 +02:00
Automatic Committer
e2bb78c206 Update pci.ids from pciids.sourceforge.net 2015-08-06 05:20:30 +02:00
Augustin Cavalier
3e50787c0e BCommandPipe: Fix memory leak.
CID 600866. Both the header and the source of the argv getter
clearly indicate that the caller must free the memory.
2015-08-04 10:59:05 -04:00
Augustin Cavalier
fb4ea396e3 BMenu: Check return value of LockLooper().
CIDs 602450-602452.
2015-08-04 10:59:00 -04:00
Dario Casalinuovo
b0ed323924 BMediaEventLooper::ControlLoop: Review style/logic, no functional change
* The code is just reversed to be better organized.
* Since the first event will be handled after a port write, at thread
  spawn we just wait with infinite timeout for new messages.
* Remove goto which then become a continue.
* This permitted to remove the double waitUntil assignment which
  was in different braces.
* lateness var become tempLateness, so it become more obvious than
  before that it's a cached value and we are doing this to avoid
  double calculus.
2015-08-04 12:05:09 +02:00
Augustin Cavalier
2ffa9f8e54 Revert "Revert "BTwoDimensionalLayout: Removed duplicated code.""
This reverts commit c2e9a9227e. I
misunderstood what Diver meant -- apparently whe he said "revert",
he meant the whole changeset, not this specific commit. So the culprit
is probably BTextView then.
2015-08-03 13:07:06 -04:00
Julian Harnath
c77b945acd app_server: allow drawing mode changes in opaque layers
* For better performance, we allow doing drawing mode changes
  (and thus, B_OP_COPY) again when inside an opaque layer which
  has only other opaque layers below it in the layer stack.

  As soon as the first non-opaque layer turns up in the stack, the
  drawing mode will be locked to alpha composite mode, until this
  layer stack is ended entirely.

  This allows using B_OP_COPY in many cases as used by WebKit.

* In the long term it would be nice to get rid of the drawing-mode
  lock altogether, however that would need some larger refactoring
  work in Painter (i.e. remove the offsetting from renderer_region
  again and instead implement an "exit-level transform" (support
  for offsets is enough) in Painter which is applied after all other
  transforms).
2015-08-03 18:56:07 +02:00
Julian Harnath
3d12d3a832 app_server: special handling for opaque/invisible layers
* Opaque layers (opacity = 255) don't need to use an intermediate
  bitmap (and everything that comes with it) for drawing at all,
  they can just directly draw onto the underlying canvas or layer.
  (WebKit likes to use plenty of opaque layers)

* Invisible layers (opacity = 0) can simply be ignored.
2015-08-03 18:50:58 +02:00
Augustin Cavalier
bd35a040a5 rman: Delete from tree. Unused, and recipe exists. 2015-08-03 11:47:25 -04:00
Augustin Cavalier
e9c7257afb BAlert: Use half-item spacing for layouts. Restores the old "compact" look.
Fixes #12273.
2015-08-03 11:39:32 -04:00
Augustin Cavalier
a4db376caa Tracker: Fix crash when the VirtualDirectoryWindow can't create the PoseView.
Fixes #11859. We may want to show an error message rather than failing
silently, but at least that is better than crashing.
2015-08-03 11:32:15 -04:00
Augustin Cavalier
c2e9a9227e Revert "BTwoDimensionalLayout: Removed duplicated code."
This reverts commit fd3e3e7bfb.
Apparently this code wasn't duplicated, as it caused all sorts of
problems in applications (e.g. Debugger was blank).

Fixes #12269.
2015-08-03 10:56:40 -04:00
Augustin Cavalier
eae0eccd2e services_daemon: Delete from tree.
Superseded by launch_daemon.
2015-08-03 10:21:52 -04:00
Ingo Weinhold
52100b0c0e Terminal: Support paths starting with '~' in hyperlink mode
Implements #12282.
2015-08-03 13:15:59 +02:00
Dario Casalinuovo
7771139cdf BMediaEventLooper: Rewrite ControlLoop()
* The first problem was the O(n^2) complexity of the algorithm, it's
  now linear and try to act in a circular way by dispatching
  events and reading the port in a balanced way. This exclude
  a certain degree of possible deadlocks.
* Add detection and escape when the system try to kill the
  thread. This solve some blocking issues on exit et similia
  that i had with libjackcompat.
* The algorithm choose soon which event to focus on.
* Lateness is calculated just before the event is dispatched
  as it is the more appropriate place, otherwise we would be
  calculating something imprecise/guessed.
* Remove timed_event_queue::queued_time. It's more precise to
  just use the RealTime() before to Dispatch the event.
* It should solve the BSoundPlayer lateness problems.
* With those improvements the media_kit is not going to lock
  completely under stress conditions, instead it try to work
  in a best effort shape.
* There's still room for improvements, for example i'm considering some
  strategies in lateness situations such as update scheduling latency,
  try to decrease waiting time and detect when we are too early on
  the other hand to recover when the load go down.
* Thanks to Julian Harnath for sharing his WIP patch which helped
  with some controls such as avoiding negative lateness.
* Comments are welcome!
2015-08-03 01:35:09 +02:00
Dario Casalinuovo
8ecc32df11 BBufferProducer: Returning B_ERROR hang up things 2015-08-03 01:19:29 +02:00
Dario Casalinuovo
7e74eb0f42 MediaPlayer VideoProducer: Flush event on stop 2015-08-03 01:19:29 +02:00
Dario Casalinuovo
313ed73b50 Revert "media_server: Fix deadlock when killing from ProcessController"
This reverts commit 5934b30b95.

* It got the way of an heisenbug and it seems this change
  fixed the problems, but after 2 days the media_server returned
  to block. Sorry about that! Will investigate further.
2015-08-03 01:19:28 +02:00
Dario Casalinuovo
75b9de169f MediaDefs: Fix percentage in when notifying the system
* Use TRACE instead of PRINT.
2015-08-03 01:19:28 +02:00
Michael Lotz
8982293017 tcp: Whitespace cleanup, move a define to header and fix a typo. 2015-08-02 23:21:12 +02:00
Michael Lotz
bed94ebc49 tcp: Change timestamp factor from 1024 to 1000.
It is the conversion factor between the milliseconds tcp time and the
microseconds system time, so 1024 does not make much sense.
2015-08-02 23:21:12 +02:00
Michael Lotz
94fb06bfce tcp: Fix early cancellation of timers on socket free.
TCPEndpoint::Free() uses _EnterTimeWait() to start the time-wait timer
for later cleanup. The latter did call _CancelConnectionTimers()
unconditionally however, also cancelling a retransmit timer that was
possibly still needed for the retransmission of the FIN packet. If the
FIN packet got lost, the connection would be left open on the other end.
2015-08-02 23:21:12 +02:00
Michael Lotz
bc49140bab tcp: Add APICall trace entry and move TRACEs into locked parts.
The APICall trace entry just records the function name but this is
enough to deduce where some of the state changes come from.

Also move the TRACE macros past the MutexLockers to ensure that their
output happens at the time when the methods actually run.
2015-08-02 23:21:11 +02:00