bucket: Make no bucket cross the 0 and 180 deg longitude border.
Change the bucket tiling at the poles not to cross the
0deg longitude and not to cross the 180deg longitude line.
This lets some special cases disappear for the buckets as well
as for the hierarchical level of detail spt loader.
Also change the last degree tiles from spanning 360 degrees to
12 degrees. Before we had 8 nested rings which neither helps
scenery paging nor culling. With that change the chunks are
about the same order of size than any other tile. Also the
tile shapes are much more friendly for culling and paging.
Also in presence of the current scenery, this polar tiles contain
as of today just totally broken geometry which tells me that
also the scenery generation process did not like these rings
for the tile shapes.
The impact on the current scenery is low. With this change the
polar regions do no longer load the tiles that are available
in the current scenery builds. The last degree tiles are broken
in this scenery version anyway. The next degree that is changed
will really loose some tiles that were sensible as of today.
All these areas are replaced with sea tiles by the old paging
structure. So, you will have at least ground below you when you
fly there. A hopefully comming soon scenery rebuild will
use this new tiling structure and thus will be the first one
providing closed polar caps.
Thomas Geymayer [Sat, 29 Dec 2012 16:47:07 +0000 (17:47 +0100)]
Allow nasal::Ghost to only wrap classes by their shared pointers
This removes support for exposing and managing classes by just
raw pointers as this made lifetime management of instances
from C++ to Nasal and especially the other way round nearly
impossible. Always using smart pointers saves us from a lot
of headaches.
James Turner [Sat, 29 Dec 2012 14:36:38 +0000 (14:36 +0000)]
Notify all requests on name lookup failures.
Since there's no active request during a name lookup failure, explicitly fail all sent and queued requests, so the Request subclasses can take regular failure action.
James Turner [Sat, 22 Dec 2012 23:55:37 +0000 (23:55 +0000)]
Tweak libSvn usage: fixes a crash on Mac.
Work-around a crash on certain Mac builds (I can't tell why other work fine) where the called parameters to apr_pool_create_ex are problematic. Explicitly pass the default values for the function.
Thomas Geymayer [Sun, 9 Dec 2012 22:08:04 +0000 (23:08 +0100)]
Create new FBO if Canvas render target size chanages
As doesnt seem to work to just resize the texture, if changing
the size of the Canvas render target a new FBO is created and
placed on all active placements.
James Turner [Fri, 7 Dec 2012 20:26:24 +0000 (15:26 -0500)]
Work on making OpenAL a compile-time option.
ENABLE_SOUND=0 now works when configuring SimGear, and libSimGearScene can be linked without OpenAL. However, more testing of FlightGear in this mode is needed before it's officially supported!
Thomas Geymayer [Thu, 6 Dec 2012 22:13:19 +0000 (23:13 +0100)]
Implement Canvas single/double/tripple click handling.
- Implement click event creation like specified in
DOM Level 3:
* Check for max move distance between mousedown/up
and clicks
* Check for click timeout
* Count clicks and report double clicks
Thomas Geymayer [Sun, 2 Dec 2012 12:19:35 +0000 (13:19 +0100)]
First working version of DOM like Canvas event handling
- Now it is possible to attach listeners to canvas
elements and also the canvas itself, which get
called upon different mouse events (Currently
only basic mouse events supported. click/dblclick
etc. are missing)
ThorstenB [Sat, 1 Dec 2012 09:59:57 +0000 (10:59 +0100)]
#946: some libraries not found on Ubuntu/Debian
Ubuntu/Debian introduced "multiarch" library directories, which is
unsupported by CMake <= 2.8.10. Add manual search paths as a workaround.
Currently it is only needed for libsvn, but it is needed for any lib
which is converted to the new directory standard.
James Turner [Sun, 25 Nov 2012 22:36:15 +0000 (22:36 +0000)]
Make SGLockingQueue::pop usable.
Since there's no external lock, it was impossible to check the queue was non-empty before a pop, without a race condition. To avoid this, tolerate an empty queue and return a default constructed value.
ThorstenB [Wed, 21 Nov 2012 19:17:58 +0000 (20:17 +0100)]
Fix compiler error with disabled sound support.
("source" is undefined in SGSampleGroup::stop).
Also fixes two related compiler warnings (unused var "sample").
James Turner [Mon, 19 Nov 2012 15:33:53 +0000 (15:33 +0000)]
Remove duplicate members in SGSampleQueue.
Remove duplicate members shared by SGSoundSample and SGSampleQueue (which inherits from it). Change SGSoundSample to expose some members as protected data for access by the sample-queue, and hence share nearly all the methods. Also remove 'inline' keyword from virtual methods.
James Turner [Sat, 17 Nov 2012 18:08:38 +0000 (18:08 +0000)]
Tweak HTTP handling for POST requests.
Tolerate slightly malformed request URLs (no slash following the host specified), and use a better check when POST-ing to decide the request-body data source.
ThorstenB [Sat, 10 Nov 2012 09:44:19 +0000 (10:44 +0100)]
gz wrapper to write and read "container files".
Packs arbitrary data (strings, property trees, binary blobs, ...) into a
single file.
Use this for storing/loading user-data only, not for distribution files
(scenery, aircraft etc).
ThorstenB [Sat, 10 Nov 2012 09:12:01 +0000 (10:12 +0100)]
Proper fix for gzfilebuf choking on some files.
When reading a new block of data, and the first byte of the new block is
0xff (_signed_ char -1), then this must be converted to _integer_ 0xff
(+255), not -1 - which would indicate an error condition (EOF==-1). All
valid _data_ character must be returned as non-negative, see
streambuf::underflow spec, or compare with
http://www.opensource.apple.com/source/zlib/zlib-12/zlib/contrib/iostream/zfstream.cpp
or
http://www.raspberryginger.com/jbailey/minix/html/zfstream_8cpp-source.html
ThorstenB [Fri, 9 Nov 2012 21:02:34 +0000 (22:02 +0100)]
gzfilebuf choked when reading large, heavily compressed files.
Apparently a 4K buf isn't enough. 64K seem much better ;-).
Real solution may be an adaptive buffer size in gzfilebuf.