Commit Graph

1120 Commits

Author SHA1 Message Date
Aleric Inglewood
5f72cbb103 Add support for flushing messages from plugin to viewer.
Actually flush messages before terminating a plugin (upon
the shutdown message) and flush messages in the file- and
dirpicker before opening the blocking dialog. Flush debug
messages too (deeper into the code, just prior to the actual
blocking call).

Also, fix the context folder map to be a thread-safe
singleton and *attempt* to add support for default folders
to windows and Mac. The latter might even not compile yet
and definitely have to be tested (and fixed):
Opening a DirPicker in preferences --> Network and Set
the directory location of the cache. It should open a
Dialog window where you are already in the folder that
is the current cache directory setting (you can click
Cancel after verifying that this worked).
And, start to upload an image, select a file is some
directory (other than what it starts in). You can omit
the actual upload by clicking cancel in the preview.
Then upload again and now it should start in the same
folder as that you were just in. Possibly you need to
first open a file picker elsewhere with a different context
though, or windows might choose to open in the last
folder anyway while the code doesn't really work. Uploading
a sound before the second texture upload should do the
trick.
2011-05-12 18:22:51 +02:00
Aleric Inglewood
38b33328e6 Redo the copyconstructor hack for AI*Access objects.
The previous hack wasn't thread-safe: read-only access would
access the reference counter multiple times at the same time,
which therefore would have to be thread-local to ever work.

The current solution just disables the calls to lock/unlock
for copyconstructed objects, which works if the copyconstructed
object isn't used anymore after the original is destructed.
This is the case then the copy construction only happens
upon passing a temporary to a function, which is the case.
2011-05-11 03:47:42 +02:00
Aleric Inglewood
a6cb676d4a Add AIDirPicker and use it. Remove indra/newview/ll{dir,file}picker.{h,cpp}.
Also removed some code from the Mac/windows code in
indra/plugins/filepicker/llfilepicker.cpp that shouldn't
be in there anymore (send_agent_pause/resume and updating
the LLFrameTimer stuff).
2011-05-11 03:01:34 +02:00
Aleric Inglewood
133391be90 Merge branch 'master' of https://github.com/siana/SingularityViewer
Resolved Conflicts:
	indra/newview/llviewermedia.cpp
	indra/plugins/base_media/CMakeLists.txt

Trivial fix for indra/newview/llviewermedia.cpp.
Moved 'prepare' dependency from base_media to
base_basic because media already depends on basic.
2011-05-10 04:46:58 +02:00
Aleric Inglewood
e0b0fa4f58 Use AIFilePicker everywhere.
Also upgrade the file picker filters with the new extensions found
in the orginal file picker code of Singularity.

Also improve AIFilePicker a bit: added hasFilename() and now
deleting the statemachine automatically by default: it's no longer
needed to call deleteMe from the callback.
2011-05-10 04:27:57 +02:00
Aleric Inglewood
81550aa6de Workaround for gcc 4.2.x.
g++ 4.2 (and possibly earlier) apparently call a copy
constructor when passing a temporary to a function
that takes a const reference. Added code to allow
copy-constructing the AI*Access classes for this
compiler.

g++-4.2.x also bails out when it encounters files that
do not end on a newline. So, also added those where
they were missing.
2011-05-10 03:11:48 +02:00
Siana Gearz
8227efcaf1 Make our build and packaging shine again 2011-05-09 13:35:51 +02:00
Siana Gearz
2ca4d1bf64 Merge branch 'AlericMaster' of git://github.com/Shyotl/SingularityViewer 2011-05-09 00:49:21 +02:00
Siana Gearz
e371c2e93d Repo cleanup. Sheesh, who packaged pics with a lib? 2011-05-09 00:40:38 +02:00
Siana Gearz
8d2b56b1eb Fixed prebuilt fetching, Snowglobe style 2011-05-08 23:25:21 +02:00
Shyotl
2529644e90 Should now compile on VC100 again. 2011-05-08 16:25:03 -05:00
Shyotl
1a099167ae Fixing Win compile. (Partial) 2011-05-08 20:34:32 +02:00
Shyotl
0638fafe66 Fixing Win compile. (Partial) 2011-05-08 12:46:42 -05:00
Siana Gearz
e2e576e550 Merge git://github.com/AlericInglewood/SingularityViewer
Conflicts:
	indra/newview/skins/default/xui/en-us/mime_types.xml
2011-05-08 19:39:32 +02:00
Aleric Inglewood
75ff0fc04d Add more support for debugging plugins.
Added support for plugin debug messages and better error reporting
when something goes wrong during start up of SLPlugin.

Also added more debug output regarding general plugin messages
as well as debug output related to AIFilePicker.
2011-05-08 17:49:06 +02:00
Aleric Inglewood
80bbf5d083 Fix underlinkage of libmedia_plugin_gstreamer.so
Needed for the newer plugin code. This is basically just a copy
of indra/cmake/GStreamer010Plugin.cmake from Imprudence.
2011-05-08 17:32:05 +02:00
Aleric Inglewood
c46c86ca4b Split plugin classes and derive AIFilePicker from BasicPluginBase (part 4).
Add back fixes that were in Singularity (in indra/media_plugins) but not
in imprudence.

Also:

Add "shutdown" plugin message and terminate file picker plugins cleanly.

The DSO (libbasic_plugin_filepicker.so) now tells the child process /
plugin loader (SLPlugin) to terminate (using the 'shutdown' message),
and AIFilePicker::finish_impl destroys the plugin object on the viewer
side when it's ... finished thus.

Also added a large comment that gives an overview of all classes
involved on the viewer side.

Additional fixes for filepicker.

Plugin refactor bug fix: mDeleteMe was uninitialized in AIPluginFilePicker.
2011-05-08 17:30:43 +02:00
Aleric Inglewood
16cd4c5c4b Split plugin classes and derive AIFilePicker from BasicPluginBase (part 3).
This commit deletes all indra/media_plugins and copied one-on-one
the indra/plugins directory from my (imprudence) statemachine branch
(which contains the AIFilePicker patch).

git shows this as a lot of 'renamed' files because originally it
was a rename. However, there are a lot of changes as well: it's both
an upgrade to a newer plugin system (changes by LL) as well as an
upgrade to my refactored plugin system with a file picker as plugin.

Since this commit is a one-on-one copy, it disregards any changes
that were in Singularity and not in imprudence in indra/media_plugins
however. I will add those back in the next commit.
2011-05-08 17:10:39 +02:00
Aleric Inglewood
784fdd4f37 Split plugin classes and derive AIFilePicker from BasicPluginBase (part 2).
This commit contains all changes to indra/llplugin.
Since there were no differences at all between Singularity and
imprudence before this patch, it's a perfect port.
2011-05-08 17:10:38 +02:00
Aleric Inglewood
e89d6d9d66 Split plugin classes and derive AIFilePicker from BasicPluginBase (part 1).
This commit contains all changes, except those in indra/media_plugins
(which was renamed to indra/plugins) and indra/llplugin.

However, it does contain the (new) file
indra/plugins/filepicker/basic_plugin_filepicker.cpp
2011-05-08 17:10:38 +02:00
Aleric Inglewood
f6b57d956d Added base class AIStateMachine.
This is the skeleton needed to implement classes that can be reused and
work together, which can perform asynchronous tasks (read: need to wait
for certain events before they can continue).

An example would be the task of waiting for a given inventory folder to
be read. This could then be used to improve the builtin AO
(automatically reading that folder when a notecard is dropped, and
continuing when the whole folder is read).

It's first use will be communication with a filepicker that runs
in a plugin.
2011-05-08 17:08:48 +02:00
Aleric Inglewood
474acdbff9 Add support for libcwd.
This patch has no influence if you don't have libcwd installed.
Note that libcwd (http://libcwd.sourceforge.net/) is only
available for linux.

A default compile of libcwd does memory allocation tracking,
which is too slow for everyday usage of the viewer (usable,
but notably slower) and we don't need that. Configure your
libcwd as follows:

./configure --prefix=/sl/usr --disable-alloc --enable-optimize

Or whatever prefix you prefer (add --enable-maintainer-mode
if you're compiling it from the SVN repository), add
--disable-nonthreading to compile twice as fast.

If you have it installed you can activate it's use by setting a
few environment variables:

CXXFLAGS="$(pkg-config --cflags libcwd_r)"
LDFLAGS="$(pkg-config --libs libcwd_r) -lpthread"

and then reconfiguring the viewer.

The -lpthread is needed when using ld.gold, however, if you
leave it out you might get an LDFLAGS that ends on trailing
whitespaces, which doesn't work for some reason.

Also, if you installed it in a non-standard place (/sl/usr
above) then you need this to run the viewer (and tests):

export LD_LIBRARY_PATH="/sl/usr/lib"
2011-05-08 17:08:48 +02:00
Aleric Inglewood
3a1d753344 Use LL_DEBUG_TERMINAL_COMMAND and LL_DEBUG_GDB_PATH
Upgraded the code that attaches gdb to a plugin for linux
to the code that I wrote for viewer 2.
2011-05-08 17:08:47 +02:00
Aleric Inglewood
111c671a21 Also strip libraries on x86_64, which uses lib32 and lib64 directory names 2011-05-08 17:08:47 +02:00
Siana Gearz
7e75a897ca Release 1.5.7 2011-05-08 16:46:12 +02:00
Siana Gearz
de1a86004d This should fix media 2011-05-08 16:15:20 +02:00
Siana Gearz
205a11d44b Merge git://github.com/Shyotl/SingularityViewer 2011-05-08 14:46:28 +02:00
Shyotl
faf86fdf24 Merge branch 'master' of https://github.com/AlericInglewood/SingularityViewer.git into AlericMaster 2011-05-07 23:48:28 -05:00
Shyotl
c5917d79c7 Resetting media texture reference timer on update call to prevent purging from texture list while still in use. Keeping nullcheck just to be safe. (Broken video is preferable to a crash) 2011-05-07 21:49:48 -05:00
Siana Gearz
63b0bf0f30 New tcmalloc, just in case old one has VC10 bugs 2011-05-08 00:51:53 +02:00
Siana Gearz
82478d4ef2 Apparently some of those is needed on Windows, and it was shoddy 2011-05-08 00:51:00 +02:00
Shyotl
2a9e7ec5f7 Merge branch 'master' of git://github.com/siana/SingularityViewer.git 2011-05-07 17:24:36 -05:00
Shyotl
7e16e0624a Scare everyone with a big-arsed warning. Horray! 2011-05-07 01:41:28 -05:00
Siana Gearz
e3f9b4dbbe Help me keep track of VBOs 2011-05-07 05:47:13 +02:00
Siana Gearz
0903241b8f Merge git://github.com/Shyotl/SingularityViewer 2011-05-06 13:50:20 +02:00
Shyotl
779fe9cfaa General cleanup. Potential line-width inconsistency tweak. Wearable creation cleanup. 2011-05-06 00:20:41 -05:00
Siana Gearz
f052915f54 Fix name in grant/ungrant edit right. Issue 33 2011-05-06 04:34:32 +02:00
Aleric Inglewood
0fa396938b Merge branch 'master' of https://github.com/siana/SingularityViewer 2011-05-05 15:54:21 +02:00
Aleric Inglewood
92696623e0 Start up crash of LLErrorThread due to corrupt map in CheckLevelMap
Wrapped gSettings and the global objects returned by Settings::get() and
Globals::get() in AIThreadSafe, forcing thread-safe access.

This solves the problem of possible corruption of the various LevelMap's
in LLError::Settings due to thread unsafe accesses.
2011-05-05 15:41:19 +02:00
Siana Gearz
e6db03054b Merge git://github.com/Shyotl/SingularityViewer 2011-05-05 03:28:55 +02:00
Siana Gearz
eedc1f79ec Resolve stray VC8 CRT dependency by updating libs 2011-05-05 03:20:54 +02:00
Shyotl
5b36f29b76 LLViewerObject::setPosition already calls updateDrawable. Removing extra updateDrawablecalls.
Referring to cam axis byref.
2011-05-04 19:56:55 -05:00
Shyotl
96f400eb4c LLViewerObjectList::mDeadObjects has no reason to be a std::map any longer. Converted to std::set as per v2. 2011-05-04 19:55:17 -05:00
Aleric Inglewood
86a19e8e91 IMP-701: An API to wrap objects for thread-safe access.
See http://redmine.imprudenceviewer.org/issues/701
2011-05-05 02:54:38 +02:00
Shyotl
8cc6092a1c A few variables were uninitialized.
Removed an unused variable.
Phys controller that should be female-only... wasn't.
Pre increment iterators when possible.
protected->private upgrades.
2011-05-04 19:54:03 -05:00
Aleric Inglewood
4d932d5e2d Added a thread-safe and robust wrapper for APR pools.
See http://redmine.imprudenceviewer.org/issues/590
and https://jira.secondlife.com/browse/SNOW-596
2011-05-05 02:52:55 +02:00
Aleric Inglewood
5b08560047 Update of doc/contributions.txt with patches from snowstorm already in Singularity. 2011-05-04 22:23:49 +02:00
Siana Gearz
4666e29fb7 install Hunspell dictionaries 2011-05-04 21:10:59 +02:00
Aleric Inglewood
f2199a504b More various small, old patches.
Updated source tree to include everything I did
up till 2010-11-09.

Still to add: IMP-590, IMP-701, IMP-734, IMP-735 and IMP-702.
2011-05-04 19:48:16 +02:00
Aleric Inglewood
ab5915c16c LindenUserDir fixes.
Patch from 2010-10-20/22. Didn't apply cleanly so I redid it
manually and tested/checked it. There was only one difference
with imprudence: for some reason Singularity tries to see
if the "teleport history" floater is visible while initializing
the menu's, something that imprudence doesn't do. For the rest
the patch is basically the same. Nevertheless, I left all code
exactly as it was in Singularity (the only thing that this
commit changes is the intend of the original patch: in debug
mode, fail with an assertion when LindenUserDir is called while
it is not initialized; and then fix everything to make it work
again.

Original commit message:

The LindenUserDir (~/.imprudence/first_last/) cannot be initialized
before the user logged in. However, several singletons (that only can be
initialized once) depend on this directory for initialization. Therefore
we have to take care not to instantiate those singletons until after the
user logged in.

With regard to webit, this fixes the browser_profile (cache and cookies)
directory that the builtin browser uses.
2011-05-04 17:54:57 +02:00