Commit Graph

5770 Commits

Author SHA1 Message Date
Lirusaito
cb8cd702e1 [LLMeshRepo sync] Linux compile fixy
Note to self: Windows compiler does not care about file casing, be more careful.
2014-04-18 23:51:52 -04:00
Liru
86b5737d51 [Floater Flexibility] French Translation~ Danke Nomade. 2014-04-18 09:17:41 -04:00
Liru
4027ec7a67 [Floater Flexibility] Fix yet another broken button, this time group titles, thanks again to the french singularity group 2014-04-18 04:58:49 -04:00
Liru
c2748a2246 [LLMeshRepo sync] The rest of the changes from upstream 2014-04-18 04:43:46 -04:00
Inusaito Sayori
5c06afc977 [LLMeshRepo sync] AICurl updates toward LLCurl
LLHTTPClient::getByteRange no longer throws AICurlNoEasyHandle, instead it returns whether or not it threw, to match the true/false convention of LLCurl.
- In addition, the header param has been shifted to earlier in this function to ease diffings.
ResponderBase now has static bool isGoodStatus, introduced into the Responder base class of LLCurl
2014-04-17 20:23:48 -04:00
Inusaito Sayori
4c82a5660f [LLMeshRepo sync] Change camelcase LLConvexDecomp to lowercase, so mergetool is happy~ 2014-04-17 18:20:34 -04:00
Inusaito Sayori
beacb5c701 [Floater Flexibility] Fix that the preferences button wasn't working, thanks Nomade for pointing this one out. 2014-04-17 15:47:50 -04:00
Inusaito Sayori
dc9cb07a81 [Floater Flexibility] Part four: Added a floater to change buttons shown on the toolbar
View->Change toolbar buttons

Reuses the old FloaterUploadRect because I'm allowed to be lazy after creating this large control panel
2014-04-16 19:03:07 -04:00
Inusaito Sayori
57fe7d9ad0 [Radar] WHAT?! Why wasn't this committed last night? I know it was... what the heck... 2014-04-16 16:08:20 -04:00
Latif Khalifa
00336de59a Merge branch 'osx_xcode5' of github.com:lkalif/SingularityViewer 2014-04-16 16:44:31 +02:00
Inusaito Sayori
b37b48f039 [Radar] Code overhaul
Brings a new "voice status" column, showing voice use as active speakers floater does.
- Shown by default, look in Extras tab to hide it
Attempt to blend and fix the visibility of the yellow for shout range.
- Requires user feedback, looks good on default and gemini to me

Refactors pretty much all of the code in the avatar list
-Less duplicate vars, less wasted space, more consistent spacing conventions, eradication of BOOL use.
We no longer add (or even evaluate what should be in) icon columns that are hidden
- This prevents icons from showing up even when their columns are hidden.
Minor work on focusing out of draw avatars, though that still won't work, sadly.
2014-04-16 05:30:19 -04:00
Latif Khalifa
42ca1a8994 [clang] Force build with SDK 10.6 2014-04-16 10:55:36 +02:00
Latif Khalifa
db678238ef Merge branch 'master' into osx_xcode5 2014-04-16 09:56:57 +02:00
Lirusaito
861f88dd30 Awesomeness, yayayay! (allows XML changes in indra/newview/skins/ to count for viewer running from a directory in indra on Windows) 2014-04-15 20:06:08 -04:00
Lirusaito
77d42f1eb9 Attempt to cure stupid people being unable to untar properly over old versions without causing massive issues
(Gawd, that is not even proper installation process.... I need a drink)
2014-04-15 20:03:24 -04:00
Inusaito Sayori
364a13017c Merge remote-tracking branch 'fairydust/master' 2014-04-15 19:57:31 -04:00
Latif Khalifa
8183deeb30 [xcode5] WIP: rebuilt clang friendly boost 2014-04-14 21:17:22 +02:00
Latif Khalifa
bb56d0a752 [xcode5] WIP: clang build fix 2014-04-14 21:16:24 +02:00
Latif Khalifa
41eafa4ede [xcode5] WIP: build system changes 2014-04-14 21:14:42 +02:00
Inusaito Sayori
ce7629200f Object Import/Export improvements
Support exporting "material" "clickaction" "flags" and "ExtraPhysics"
Support export of Light Texture feature, the expansion to Light feature.
Initial work to support firestorm's format.
Switched from exporting individual flags fields in favor of exporting one U32 field
- We still support the old single flag fields though we no longer export them.
2014-04-09 20:24:15 -04:00
Inusaito Sayori
5dca06d3d4 So then I said, "Compile, are you crazy?!" 2014-04-08 04:51:18 -04:00
Inusaito Sayori
b1d18c7f29 Address Issue 1298: Add Auto-replace text feature, borrowed from LL~ 2014-04-08 02:12:51 -04:00
Inusaito Sayori
0b2d019e61 Latif's requested touch-ups for IM windows in concise mode.
Profile option for concise flyout.
Fix for ding in multi-user chats breaking button alignment.
2014-04-08 01:07:19 -04:00
Inusaito Sayori
ab0dde7fe8 [Floater Flexibility] Part three and a half: Toolbar code cleanup, toolbar in mouselook option
Go into Preferences->Input and Camera, to find the new option~

Thanks to Cinder for checking that the mac changes build and look nice.
2014-04-08 00:36:44 -04:00
Inusaito Sayori
ef01d2af82 Fix "zombie" lie and tabs/spaces inconsistency in xml. 2014-04-07 16:06:33 -04:00
Inusaito Sayori
3642e401da Fix About and Toolbar prefs buttons being mushed together, thanks for the heads-up Friti! 2014-04-04 19:57:32 -04:00
Inusaito Sayori
094d284e62 Missed a git mv, mac should build after this. 2014-04-04 17:28:19 -04:00
Latif Khalifa
2c7459e08d Supress bool/BOOL comparison warning 2014-04-04 21:29:41 +02:00
Latif Khalifa
315d2c4daf Merge branch 'master' of git://github.com/AlericInglewood/SingularityViewer 2014-04-04 21:21:00 +02:00
Aleric Inglewood
e61cabf1ce Remove compiler warning. 2014-04-04 21:13:57 +02:00
Aleric Inglewood
994f409291 Attempt 2 2014-04-04 21:06:30 +02:00
Aleric Inglewood
7d124012c2 First attempt to fix windows compile errors. 2014-04-04 20:58:33 +02:00
Latif Khalifa
4d3c80e273 Merge branch 'master' of git://github.com/AlericInglewood/SingularityViewer 2014-04-04 20:08:19 +02:00
Aleric Inglewood
a332a7fc35 Compile fix for motions backport. 2014-04-04 17:33:45 +02:00
Aleric Inglewood
2fb945a489 Fix floating point round off error bug that caused mAnimTime to be decreased in value.
Conflicts:
	indra/llcharacter/llmotioncontroller.cpp
2014-04-04 15:22:18 +02:00
Aleric Inglewood
4d2517d163 Freeze also synchronized avatars when editing an attachment.
On the removal of permYouOwner():

Calling permYouOwner() to determine if an attachment is yours is
not correct: grid gods (and that includes BEFORE requesting admin
status) are marked as owner of everything in their sim.

The reason for that is that otherwise,
  <Melanie_T> if they only had it when actually godding u, the viewer
  would have to have an option to either show the proper menus (it
  doesn't) or allow the sim to refresh the object flags without full
  object updates (it hasn't).
  <Melanie_T> gods often have to act fast, for instance with griefers.
  Having transition to god mode take as long as a full rez just isn't an
  option, apart from the sim load caused by resending all objects.
  <Melanie_T> Then i tried resending only the object that was selected
  but there the arriving object update would close the pie menu.
  So you right-click a prim and the pie menu would close again.

The result has always been that if you are on your own sim, in opensim,
and select an attachment on another avatar, then YOU would freeze, not
the selected avatar. This patch fixes that "opensim related" bug as
well.
2014-04-04 15:19:50 +02:00
Aleric Inglewood
b4848f308f Compile fix for Release 2014-04-04 15:19:39 +02:00
Aleric Inglewood
1c8876cead Synchronize looping animations that start at the same moment. 2014-04-04 15:19:28 +02:00
Aleric Inglewood
1bcb6ad20d Version 2 of AISyncClient et al.
A tool to synchronize objects:
Objects derived from AISyncClient can signal that they are
'ready' or 'not ready' for up to 32 events (using a bitmask)
at a time. Clients that are created at roughly the same time
as other clients, and which return the same 'key' (a virtual
function returning an AISyncKey object) will be grouped together
and receive events (by means of virtual functions being called)
to notify them of all clients being ready or not for one of the
events (the least significant bit)). The other events can be polled.

This new version does away with all the templates and explicitly
remembers what events each client is ready for instead of just
updating a counter of the number of clients. This was necessary
because a client is removed then the server needs to know if it
was ready or not when it has to be able to update those counters.
This time I chose to just run over all stored clients and AND
and OR the per-client-ready-masks because 1) that information
is available now and 2) the lists will normally contain only
one or two clients, so it's fast enough.
The new version also allows for real key comparison (and derived
keys) instead of just using "hash" value that is compared.
2014-04-04 15:19:18 +02:00
Aleric Inglewood
66aaa9cf80 Add LLMotionController* LLMotion::mMotionController
This is needed for synchronization: motions will have to start
(with a specific start time offset) from a point in the code where
only the motion object is available.

I added/used LLMotionController& in a previous commit, this was
now changed into a pointer. There is (obviously) not much reason
for that, but also no disadvantage: the diff relative to LLs code
doesn't get larger since the references where already added, too.

Conflicts:
	indra/llcharacter/llkeyframemotion.cpp
	indra/llcharacter/llkeyframemotion.h
2014-04-04 15:19:02 +02:00
Aleric Inglewood
61d365e957 Removed this again... 2014-04-04 15:15:36 +02:00
Aleric Inglewood
006b319c3a Add AISyncClient<> (and AISyncServer).
A tool to synchronize objects:
Objects derived from AISyncClient can signal that they are
'ready' or 'not ready' for up to 4 events (using a bitmask)
at a time. Clients that signal to be ready for anything
at roughly the same time as other clients, and which return
the same 'hash' (a virtual function returning a 64bit value)
will be grouped together and receive events (by means of
virtual functions being called) to notify them of all clients
being ready or not for one of the events (syncevent1).
The other three events can be polled.

The memory usage is low (one pointer per client that points
to its AISyncServer object), servers are released to a cache
after about 100 ms (unless there is actual need for synchronization),
so there aren't much of those either.

The CPU usage is extremely low: all events are handled in
parallel in a 32 bit value (6 bits per event to count the
number of registered clients and the number of ready clients
for each event, and the remaining 8 bits to count the
number of reference pointers (which should only be a constant
higher, so that is overkill). To signal to a server that
a client has become ready or not is mostly a function call,
which then takes 1 clock cycle or so before returning.
Registration of a client is slightly more expensive as it
requires a pointer to be added to the end of a std::list.
This tool could easily be used as part of the graphics engine
(not that I intend to do that :p).
2014-04-04 15:15:26 +02:00
Aleric Inglewood
e38ec797fd Fix lookat and pointat shared experience.
There was a bug that when people turned off sending viewer effects,
they'd also turn off sending LookAt, while there is a seperate
checkbox to turn THAT off, while still seeing their own avatar
happily look around, breaking shared experience (most notably, most
people will be complete oblivious of the fact that they look like
zombies to others and that their friends do not see the same thing
on their screen).

This patch fixes this: both parties now see the same thing. Lookat
and PointAt are only turned off by their respective checkboxes,
and no longer silently influenced by turning off other viewer
effects.
2014-04-04 15:15:15 +02:00
Aleric Inglewood
94b42e7a9b Speed up of particular inefficient part related to motions.
For these standard motions, the viewer likes to very frequently
flood-call startMotion/stopMotion sometimes, which at the very
least needs a LLUUID lookup in a std::map. In particular, this
is done for two of them for every avatar in the sim every frame.
This code makes it possible to test if that makes sense by
merely doing a bit test.

Conflicts:
	indra/llcharacter/llkeyframemotion.h
2014-04-04 15:14:54 +02:00
Aleric Inglewood
61097dac72 Auto clean up motion cache.
Conflicts:
	indra/llcharacter/llkeyframemotion.cpp
	indra/llcharacter/llkeyframemotion.h
	indra/newview/llfloaterbvhpreview.cpp
2014-04-04 15:10:52 +02:00
Aleric Inglewood
116fe01dee Add AIDebugInstanceCounter
Prints number of instances upon construction and destruction.
Usage:

class LLSomething : public AIDebugInstanceCounter<LLSomething>
...
2014-04-04 14:57:55 +02:00
Aleric Inglewood
ba2bf9f366 Get rid of unused and irrepairable code. 2014-04-04 14:57:41 +02:00
Aleric Inglewood
a5b68f2da2 Changes to llkeyframemotionparam.cpp as result of audit.
These changes were the result of my Motion leak audit.
However, there is a serious problem with LLKeyframeMotionParam
in that it stores plain pointers to objects that can and will be deleted
by other objects. Its the classicial LL example of coding
non-Object-Oriented badly maintainable and instable code.

I cannot make sure this won't go wrong for the simple fact
that LLKeyframeMotionParam is not used at ALL in our code.
Hence, the next commit will rather delete this file.
This commit is merely to have a record of this finding.
2014-04-04 14:57:31 +02:00
Inusaito Sayori
97edb0f954 [Floater Flexibility] Part three: Create the flexible toolbar and create the temporary settings for button visibility
Look in debug settings for settings that start with ToolbarVisible
This will have an official interface by part four.
2014-04-03 14:36:20 -04:00
Inusaito Sayori
a3531b931b Feature Request: Ding for groups and conference chats. 2014-04-03 01:27:27 -04:00