of the active ViewLayer is now always mirrored in the Painter instance
of a ServerWindow, so that it doesn't need to be synced on every drawing
command, this was previously incomplete for font handling
* removed the DrawState parameter from all the DrawingEngine functions
* adjusted ServerWindow and ServerPicture accordingly
* made sure that string related functions used by non-drawing related
parts (ServerApp, Decorator) don't interfere with the current drawing
state
* moved AS_SYNC handling from _DispatchViewMessage to _DispatchMessage,
it is actually a window message and doesn't require fCurrentLayer to
be valid
* fixed bug #1300, fCurrentLayer was not updated when a ViewLayer was
deleted by client request which happened to be fCurrentLayer (I am now
handling it so that the parent becomes the current layer, could be
wrong)
* AGGTextRenderer is no longer using it's own scanline, which should save
a few bytes RAM, the Painter already had such an object
* StringWidth() in AGGTextRenderer is now taking the escapement_delta into
account
* Painter::StrokeLine() doesn't need to check the clipping as much, since
that is already done in DrawingEngine
* if a ServerWindow message is not handled because fCurrentLayer is NULL,
a reply is sent in case the messages needs it (client window could
freeze otherwise, waiting for the reply for ever)
* removed unused AS_SET_FONT and AS_SET_FONT_SIZE
* added automatic RGBColor -> rgb_color conversion to RGBColor.h
* minor cleanup for 80 char/line limit
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21685 a95241bf-73f2-0310-859d-f6bbb57e9c96
I "ported" the region implementation from XOrg to work on BRegion data.
This resulted in pretty much the same code structure as before, with
RegionSupport.cpp containing the messy details. Only now it _is_ really messy
from a code beauty point of view. I didn't exactly feel like cleaning it
up right now... but I guess I will have to.
So what does this mean - our BRegion implementation was very slow (no offense!),
and on top of that it scaled very badly with more and more rects. The new
implementation seems to be on par with the very fast R5 implementation and
the data looks exactly the same too. BRegion is very performance critical
for the app_server, and I cannot wait to try this on my slow computer...
Some changes are noteworthy: The right and bottom coordinates of
BRegion internal data are now exclusive! I inherited that from the
XOrg implementation and didn't feel like changing the code, seeing it
is probably tested quite well. The conversion is handled transparently.
Secondly, constructing a BRegion with just one rect is not invoking
malloc anymore for the member data, this makes it much more efficient
to use temporary BRegions with just one rect, both externally and internally
in the BRegion implementation.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21665 a95241bf-73f2-0310-859d-f6bbb57e9c96
a string
* fixed profiling of message processsing in ServerWindow (didn't take batch
processing into account)
* accelerated ViewLayer::RebuildClipping() by a factor of two by avoiding
BRegion::Exclude(clipping_rect) for each child, and instead building
one region with all children, and excluding that. RebuildClipping() is
quite a common operation and is quite slow for views with many children
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21646 a95241bf-73f2-0310-859d-f6bbb57e9c96
not need to be "set" (transfered from the "current" view to the painter)
for each singly drawing command. Now, painter is synchronized whenever
the client changes the drawing state of the current view, or when the
current view changes.
* the screen offset of the current view has become part of the Painter state,
in the PatternHandler. This fixes a bug in which moving or scrolling a view
which used patterns for drawing, resulted in visual glitches (seams in the
pattern).
NOTE: this patch is a bit work in progress, most importantly, it is not
complete with regards to text rendering. More specifically, the server
applications and other parts of the appserver might set a font on the Painter
and this might mess up the synchronization. But this happens on the Desktop's
Painter instance (only?), and so it is not a problem. I did observe some
drawing bugs with this patch though, so bug reports are welcome, particularily
how to reproduce these bugs reliably.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21643 a95241bf-73f2-0310-859d-f6bbb57e9c96
looking up the color in the pattern, this is needed because before,
patterns were always drawn with the virtual origin in screen coordinate
space, but they need to be drawn with view coordinate origin taken into
account (will be implemented in a forthcomming commit)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21639 a95241bf-73f2-0310-859d-f6bbb57e9c96
FontFamily.h/cpp (just for the reason that this is how we do it mostly
everywhere)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21637 a95241bf-73f2-0310-859d-f6bbb57e9c96
- can currently display the configuration of a chosen ethernet device
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21588 a95241bf-73f2-0310-859d-f6bbb57e9c96
from C-Media itself, and was later improved upon by Marko Koscak
* includes some fixes by Dr. Hartmut Reh
* uses old audio driver API
* builds, but I don't know if it works yet. I do have such a card, but
on another computer... will check if it works and add it to the image if
it does
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21536 a95241bf-73f2-0310-859d-f6bbb57e9c96
-> It is currently disabled, because it won't link.
I would need to add xvid to the tree, but that would add nasm
as a build dependency. I need to talk this over with Ingo. However,
it is quite easy to build xvid yourself and link the decoder, should
you want to test it. It works fine under ZETA when compiled to use
the undocumented R5 Decoder API.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21504 a95241bf-73f2-0310-859d-f6bbb57e9c96
didn't quit was really in BApplication (the fix there also fixes other apps
not quitting, like Icon-O-Matic and probably others)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21502 a95241bf-73f2-0310-859d-f6bbb57e9c96
minimized windows, those need to be asked of course)
* added some comments about why this code is a little flawed but works anyways
NOTE: I really wonder wether traversing the window list in reverse is correct
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21501 a95241bf-73f2-0310-859d-f6bbb57e9c96
* I completely rearranged the source and fixed a few bugs, one of which
prevented me to use this tool to convert some XViD encoded AVIs that had
sound to PJPEG encoding.
* it is currently agreed to have this in the source, but not on the image yet,
the MediaKit doesn't support writing anyways as of now
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21489 a95241bf-73f2-0310-859d-f6bbb57e9c96
* fixed the build of netfs under BONE/Dano by using
the already existing build system defines instead of wrong checks
for wether to use BONE headers
* the client tried to bind to a non existing address for receiving
broadcasts from the server (but the broadcasts are still not received,
which will be worked on next)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21409 a95241bf-73f2-0310-859d-f6bbb57e9c96
* window size limits are correctly set
* one can now chose between horizontal and vertical layout
(brilliantly simple with the new layout system :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21385 a95241bf-73f2-0310-859d-f6bbb57e9c96
/boot/beos/apps, but a folder containing links to _selected_
apps in that folder
* a new entry "Desktop Applets" has been added, which contains
all the apps that you either do or do not start at system boot,
but don't need frequent access to
* some apps have been hidden:
- ShowImage and Expander are usually not
directly started on their own, but through double clicking documents
- AboutSystem is invoked elsewhere from the Leaf menu, so it doesn't need
to clutter the Applications menu
* we almost introduced a third category for rarely used apps, but in the
end it would only have contained Installer, Icon-O-Matic and Diskprobe,
and we felt that it is ok to leave these in the Applications menu, as long
as their number is small
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21374 a95241bf-73f2-0310-859d-f6bbb57e9c96
* it has been rewritten from using liblayout to use the new Haiku
layout framework
* TODO: it should come with default settings
* TODO: the minimum window size is not yet set by the layout framework (?)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21373 a95241bf-73f2-0310-859d-f6bbb57e9c96
(currently, a font size above 16pt will make the icon 64x64, TODO: some
of the other insets could depend on that value too)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21369 a95241bf-73f2-0310-859d-f6bbb57e9c96
* implemented full undo/redo for any playlist operations
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21317 a95241bf-73f2-0310-859d-f6bbb57e9c96
everything regarding playlist modification is now tunneled through
the playlist window
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21312 a95241bf-73f2-0310-859d-f6bbb57e9c96
when you want to replace the playlist by the stuff you are dragging,
the default behaviour is now to insert/append it to the existing items
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21309 a95241bf-73f2-0310-859d-f6bbb57e9c96
* lots of changes, besically these make the Playlist window usable
- drag sorting works (hold shift to copy instead of move items)
- removing items with the delete key works
- dragging files/folders from Tracker works (hold shift to insert
them in the existing playlist, othewise the new files replace
the playlist)
* some refactoring and bug fixes in previously unused functionality
* Playlist can now be locked (needed to be), and is in ControllerView,
MainWin and PlaylistListView
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21305 a95241bf-73f2-0310-859d-f6bbb57e9c96
moved functions in .cpp accordingly, prepended private methods with _
* disabled InfoWin, because it accessed members of MainWin directly,
will be reimplemented with notification mechanism
* fixed the bug with the multiple error alerts for an unsupported file,
the window should use the current file index from the notification
itself
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21300 a95241bf-73f2-0310-859d-f6bbb57e9c96
or else these messages end up in the window MessageReceived()
(since the MainWindow was observing the same notifier, it received some
notifications twice, which was part of the reason that unrecognized files
produced multiple error messages as reported by Marcus)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21298 a95241bf-73f2-0310-859d-f6bbb57e9c96
we can associate these native files with Icon-O-Matic (they also get their
own mime type)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21295 a95241bf-73f2-0310-859d-f6bbb57e9c96
* moved Siarzhuk Zharski and François Revol from contributors
to the list of active developers
* moved Thomas Kurschel to the list of contributors
* added Michele aka zuMi to the list of contributors
Disclaimer:
* I might have forgotten someone who should be in active developers
* I didn't mean to discourage anyone
* I am against having three separate lists anyways... :-)
* Please take it as what this is: I wanted to put Ithamar and zuMi in there
and did some cleanup along the way...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21293 a95241bf-73f2-0310-859d-f6bbb57e9c96
-> all done by zuMi sometimes with minor modifications by myself
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21286 a95241bf-73f2-0310-859d-f6bbb57e9c96
* added AbstractLOAdapter by Ingo Weinhold which makes
notifications asynchronous
* removed "Player" interface/concept, replaced it by
the notification mechanism (window loads new file
when "current" ref index changes in Playlist)
* removed some cross classes dependencies
* the wind buttons are not displayed anymore for now
* lots of changes to the Controller
- the decoder/player threads are kept running for the
entire lifetime of the Controller object (in essence, makes
it possible to playback seamless)
- abstracted BMediaTrack usage into "Video-" and "AudioSupplier"
objects (the BMediaTrack pointers are only still there, because
I have not gotten around to fix the messy/hacky InfoWindow)
- reaching the end of the stream will trigger a notification,
so that the next file from the playlist is played
- fSoundOutput is managed by the Controller
- tried to make seeking seem more controlled (slider doesn't
jump back to previous position)
- playback position is correctly updated in GUI
- volume is maintained independend of SoundOutput so
that it can be transfered from one to the next output
- performance time is maintained correctly (?) even if
no audio stream is present
* work in progress Playlist window (drag sorting does not work yet!)
* rearranged menus a bit
* rearranged overlay code in the VideoView, but it cannot work
like it is currently designed, since the buffers need to be
switched all at once, which the video decoding thread
is not doing yet
* dragging files into the main window with shift held down
appends to the existing playlist
* dropping folders adds files recursively
* pressing space toggles playback (instead of changing some
settings of the GUI)
* fixed some more minor issues or unimplemented stuff in the UI
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21276 a95241bf-73f2-0310-859d-f6bbb57e9c96
* use B_OP_OVER in order to do anti-aliasing with the real background
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21275 a95241bf-73f2-0310-859d-f6bbb57e9c96
to save the document also as icon attribute to a native Icon-O-Matic
document file
* added cmd-Y short cut to main window (on a German keyboard, Y and Z
are swapped, but the Undo/Redo shortcuts are still "Z" while Z is much
harder to reach than Y)
* fixed warning in SetColorCommand.cpp
* FlatIconExporter needs to save the attribute using B_VECTOR_ICON_TYPE
(of course)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21235 a95241bf-73f2-0310-859d-f6bbb57e9c96
* small update to icon
* link with libgame.so (includes set_mouse_position())
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21193 a95241bf-73f2-0310-859d-f6bbb57e9c96
* test the actually visible view area against dirty region,
(this avoids making the client window call the Draw() function of views,
even though all the drawing would get clipped on the server side)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20756 a95241bf-73f2-0310-859d-f6bbb57e9c96
resources are not added for the "Addon" target type? Ingo?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20688 a95241bf-73f2-0310-859d-f6bbb57e9c96