Commit Graph
96 Commits
Author SHA1 Message Date
Thomas Geymayer c414242f13 sg_netChat: let getTerminator return const char* for compatiblity with FlightGear 2013-03-03 01:19:35 +01:00
Thomas Geymayer 33e60725b1 sg_netChat: Use std::string to prevent crash with old strdup.
Thanks to Godspeed for noticing this code crashing with MSVC.
Using std::string should fix this.
2013-03-03 01:12:01 +01:00
Thomas Geymayer 530de4d809 cppbind: Prepare for improved bindings.
- Improved Nasal/C++ bindings will follow. For now just test if
   all compilers are happy with intended approach.
 - Add to_nasal overload for std::map<std::string, T>.
2013-03-02 00:13:48 +01:00
Thomas Geymayer 5e45bdeeda Add optional user_data to Nasal C functions.
A user_data pointer and another pointer to an optional
deleter function is stored in unused parts of the naPtr
union. The previous behavior of extension functions does
not change. Only one additional boolean comparison is
required upon each function call to check whether user
data is available.
2013-03-01 12:22:51 +01:00
Thomas Geymayer 081eba903f Visual Studio fix 2013-03-01 00:33:47 +01:00
Thomas Geymayer 0def045611 cppbind: Fix SGPath from_nasal_helper 2013-02-28 23:46:55 +01:00
Thomas Geymayer e20cc6a90f Nasal cppbind: support more member function types 2013-02-28 23:43:42 +01:00
Thomas Geymayer 7dd83dd2d1 Fix boolean conversion 2013-02-28 22:23:30 +01:00
Thomas Geymayer 1240807b9f ODGauge/Canvas: add option "additive-blend" to use additive alpha blending 2013-02-28 22:04:16 +01:00
Thomas Geymayer e1302bcf17 CanvasImage: Fix border abs/rel calculations; add slice-width property 2013-02-28 01:09:27 +01:00
Thomas Geymayer cfdc7db79a sgstream_test needs linking with zlib 2013-02-26 12:53:56 +01:00
Thomas Geymayer 50de873453 Canvas: ensure z-index is updated on adding new child. 2013-02-26 12:49:04 +01:00
Thomas Geymayer 328e6b3e28 Update bounding box if calling update() on canvas elements 2013-02-24 20:44:02 +01:00
Thomas Geymayer 5441db9b18 Support image slice/scale-9 for CanvasImage. 2013-02-24 17:57:19 +01:00
Thomas Geymayer 06bfa4f1a1 Fix package management compiling with linux 2013-02-21 14:03:08 +01:00
Thomas Geymayer 1784327c47 CanvasImage: Use image/canvas size rather than texture size 2013-02-15 12:32:31 +01:00
Thomas Geymayer a63ec83d5f CanvasImage: Use normalized coordinates by default.
Using absolute sizes by default lead to problems,
as while creating the image the size of the later
texture is not available.
2013-02-14 17:32:19 +01:00
Thomas Geymayer d661516b02 Expose whether CanvasElement is visible 2013-02-13 12:09:15 +01:00
Thomas Geymayer 632abdd87b Fix CanvasText horizontal alignment.
Don't reduce width of bounding box below character width
even if outline of rendered character is smaller. This
prevents trailing spaces from being ignored and also
fixes continuously chaging alignment (especially with
monospace fonts).
2013-02-09 12:17:45 +01:00
Thomas Geymayer 979aea5212 Add SGMisc::seek helper 2013-02-08 12:12:15 +01:00
Thomas Geymayer 4bef2c48eb Remove debug output 2013-02-07 10:10:38 +01:00
Thomas Geymayer 21e2a769eb Fix PropertyObject bug and interface improvements.
- Fix overwriting of parent node if PropertyObject::node() is
   called for a non-existing node.
 - Prevent implicit conversion from const char* and
   SGPropertyNode*
2013-02-07 01:25:55 +01:00
Thomas Geymayer 5dea221ad5 Expose reloading Canvas placements 2013-02-06 01:19:24 +01:00
Thomas Geymayer e7f9486aa1 Nasal String wrapper and allow adding methods to string objects.
- Add nasal::String for wrapping Nasal string data and accessing
   string methods (which eg. could be exposed to Nasal)
 - Allow adding functions from C/C++ which are callable on
   Nasal strings.
2013-01-31 19:07:33 +01:00
Thomas Geymayer 47b02c0480 Missing include 2013-01-22 19:20:41 +01:00
Thomas Geymayer ea8023e51f Canvas: Provide sane default bounding box (For Image & Text) 2013-01-09 12:11:19 +01:00
Thomas Geymayer 8a9693a28e Fix canvas mouse intersection test
Bounding box of drawables use other coordinate frame
then bounding sphere of MatrixTransform...
2013-01-05 00:44:19 +01:00
Thomas Geymayer 724fba4af9 canvas::Element: parse full 3x3 matrix
This doesn't change any existing behaviour but allows specifying
full 3x3 matrix to eg. perform a perspective transform needed
for some HUDs.
2013-01-01 14:18:39 +01:00
Thomas Geymayer beca1cbf96 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.
2012-12-29 17:49:22 +01:00
Thomas Geymayer 0423aedffc Revert to old way of including everything from SGMath.hxx 2012-12-23 01:30:41 +01:00
Thomas Geymayer bc3dd06b26 Missing file... 2012-12-17 10:53:52 +01:00
Thomas Geymayer fd39808ed8 Nasal cppbindings: automatic conversion of vec2 to/from Nasal 2012-12-17 00:29:14 +01:00
Thomas Geymayer a1b7cb5330 Fix memory leak if nasal::Ghost creation fails 2012-12-16 21:31:19 +01:00
Thomas Geymayer ac27fae712 Canvas: Remove old event handling code 2012-12-16 19:02:21 +01:00
Thomas Geymayer f6270ec395 Canvas: create mouseover/mouseout events 2012-12-16 18:52:32 +01:00
Thomas Geymayer 50688e1159 Rename simgear::Rect to SGRect and make interface more similar to SGBox 2012-12-13 23:37:21 +01:00
Thomas Geymayer 8417fea3bf Overload Rect::contains and add compound assignment operators to PropertyObject 2012-12-13 00:30:11 +01:00
Thomas Geymayer 2263823f75 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.
2012-12-09 23:08:07 +01:00
Thomas Geymayer a882263033 Canvas: MouseEvent now contains screen and client pos 2012-12-08 15:01:01 +01:00
Thomas Geymayer fd27e7bd43 Canvas: basic support for rectangular clipping (like CSS clip property) 2012-12-07 18:36:37 +01:00
Thomas Geymayer 4dfe36cdc1 Canvas: Fix handling drag events and some cleanup. 2012-12-07 18:35:20 +01:00
Thomas Geymayer fc49be1e05 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
2012-12-06 23:16:36 +01:00
Thomas Geymayer d06d94c767 Canvas: Propagate style changes on groups to children 2012-12-06 11:33:51 +01:00
Thomas Geymayer e9b499b82d Extend Canvas to retrieve bounding box of groups 2012-12-04 23:58:08 +01:00
Thomas Geymayer e6e3e686c6 canvas::Element: print warning instead of crash on removing unknown transform 2012-12-02 23:55:34 +01:00
Thomas Geymayer 46442ef50c 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)
2012-12-02 13:22:37 +01:00
Thomas Geymayer 8816d0a9ac Add method canvas::Group::getElementById
- canvas::Group: New method to get a (possibly
   nested) child by its id.
 - nasal::Ghost: Also support recursive parent
   hashes.
2012-11-30 00:06:17 +01:00
Thomas Geymayer 229837b14c Fix some compiler warnings. size_t/int/unsigned conversions and extra ';' 2012-11-29 20:20:40 +01:00
Thomas Geymayer 94b068a40f Use better method names and add comments 2012-11-29 17:52:52 +01:00
Thomas Geymayer 2f0dfc4d74 Add methods to get arguments passed to function from Nasal 2012-11-29 01:23:15 +01:00
Thomas Geymayer c19585e22a Simplify/Make VS happy 2012-11-27 15:14:54 +01:00
Thomas Geymayer 77946585b1 Canvas: Prepare for DOM Level 2 like event model. 2012-11-27 13:51:00 +01:00
Thomas Geymayer 88a35fd162 cppbind: Automatic conversion of derived ghosts and some cleanup/fixes 2012-11-27 13:02:36 +01:00
Thomas Geymayer 767184cf3c Extend CanvasSystemAdapter to provide access to Nasal gcSave and gcRelease 2012-11-22 00:54:56 +01:00
Thomas Geymayer 9be53e746f Allow canvas::Placements to have own properties 2012-11-21 13:05:19 +01:00
Thomas Geymayer 8b6f50d0cc SGPropertyNode::fireCreatedRecursive: don't fire for node itself by default 2012-11-21 11:58:07 +01:00
Thomas Geymayer 904d714d6d Get Canvas/PropertyBasedElement by name 2012-11-18 16:27:05 +01:00
Thomas Geymayer 9f31addfa5 Fix for old gcc which got broken by fix for VS 2012-11-16 16:49:35 +01:00
Thomas Geymayer d56ea7e6c4 Fix for VS bug 2012-11-16 15:49:43 +01:00
Thomas Geymayer 1cbe271ad5 Nasal bindings: Always pass object by reference 2012-11-16 12:24:47 +01:00
Thomas Geymayer 33db3c377f One more fix for old gcc 2012-11-15 23:31:18 +01:00
Thomas Geymayer a0535ef64d Fix compile errors for old gcc 2012-11-15 22:17:43 +01:00
Thomas Geymayer 392ba18ff7 Canvas/C++ bindings: automatically detect dynamic type of polymorphic exposed classes 2012-11-15 21:17:33 +01:00
Thomas Geymayer e872f9e928 Work around Visual Studio bug 2012-11-13 12:35:12 +01:00
Thomas Geymayer 04685a8179 C++/Nasal bindings: allow registering free function as member 2012-11-12 23:28:00 +01:00
Thomas Geymayer 55fbe68e62 Missing include and more doxygen improvements 2012-11-12 13:57:10 +01:00
Thomas Geymayer f51e1f0cc8 Fix file headers 2012-11-12 12:25:08 +01:00
Thomas Geymayer d31b62d44d Add nasal::Ghost class for exposing C++ classes to Nasal 2012-11-12 12:11:41 +01:00
Thomas Geymayer 0fef94cfdb Add from_nasal helper and fix to_nasal for std::vector. 2012-11-10 14:34:18 +01:00
Thomas Geymayer 54778ee1e1 Some basic C++/Nasal binding helpers
- Add nasal::to_nasal for converting different C++ types
   to the according Nasal types.
 - Add nasal::Hash, an OOP wrapper around Nasal hashes.
2012-11-09 19:28:27 +01:00
Thomas Geymayer 4efcda534d Workaround for VS10 Bug/Remove superfluous class qualification 2012-11-09 10:36:42 +01:00
Thomas Geymayer 45ac5cb2fa Canvas cleanup and restructuring
- Add some methods for easier using the Canvas from C++
 - Add some documentation to Nasal
2012-11-09 00:05:11 +01:00
Thomas Geymayer 183d3749f0 Fix SGPropertyNode tests 2012-11-07 09:31:56 +01:00
Thomas Geymayer 81bee2bbc6 Jenkins has some problems with bind and lambdas. Let's try it with ordinary function pointers... 2012-11-06 19:34:23 +01:00
Thomas Geymayer 34719da000 Clean up Canvas element creation 2012-11-06 18:48:00 +01:00
Thomas Geymayer df8a3d9c60 SIMGEAR_HEADLESS define is not needed anymore 2012-11-05 18:06:13 +01:00
Thomas Geymayer 53dea9b069 Move parseColor to scene/util
parseColor is used to parse a CSS color string into an osg::Vec4
which is only available in SimGearScene. If someone needs the
function also in SimGear headless mode we have to think about
where to better place this function.
2012-11-05 17:58:24 +01:00
Thomas Geymayer 186bae2bd4 Proper headless build fix 2012-11-05 13:35:06 +01:00
Thomas Geymayer f83c8828f0 Fix windows and headless build 2012-11-05 12:59:15 +01:00
Thomas Geymayer 509d064286 No need to link to ShivaVG anymore 2012-11-04 23:48:51 +01:00
Thomas Geymayer 2d039e393a Include ShivaVG into libSimGearScene 2012-11-04 20:00:53 +01:00
Thomas Geymayer 9ab88d9387 Commited too fast... 2012-11-04 19:22:37 +01:00
Thomas Geymayer 882a2a0e52 Remove OpenVG dependency from header file 2012-11-04 19:21:33 +01:00
Thomas Geymayer c6ce1d8c67 Fix adding ShivaVG include directory 2012-11-04 16:51:07 +01:00
Thomas Geymayer 77e1a2e4be Fix signed/unsigned comparison warning 2012-11-04 15:26:41 +01:00
Thomas Geymayer b99f53fda3 Refactor Canvas and add some helpers.
- Refactor Canvas from FlightGear and fix lazy rendering with
   recursive canvases.
 - New classes PropertyBasedElement and PropertyBasedManager for
   creating subsystems controlled by the property tree.
 - New method parseColor to parse CSS 3 conformant color strings
   (only basic color schemes supported)
 - New Rect class representing a rectangle.
2012-11-04 14:12:05 +01:00
Thomas Geymayer 8ebc0f2b24 Add VGInitOperation for initializing OpenVG 2012-10-31 01:38:59 +01:00
Thomas Geymayer 5330dc34bc Helper for property controlled subsystems
- Subsystem which manages a list of elements which
   are controlled through the property tree.
 - Fix a ShivaVG compiler warning.
 - Add some helper functions to trigger property removed/add
   events for a whole property tree.
2012-10-29 16:11:35 +01:00
Thomas Geymayer d0ae09c7e2 Link with ShivaVG 2012-10-25 01:02:38 +02:00
Thomas Geymayer a25bd06138 ShivaVG: Support for pseudo non-zero fillrule 2012-10-25 01:02:23 +02:00
Thomas Geymayer 5eac7974c9 Add missing glx.h include and fix some warnings. 2012-10-25 00:44:47 +02:00
Thomas Geymayer 05c107ba9c Allow filling paths and do some clean up/fixing. 2012-10-25 00:44:47 +02:00
Thomas Geymayer 99b00daf87 Add ShivaVG sources 2012-10-25 00:44:47 +02:00
Thomas Geymayer f191b4f35c Move FGODGauge from FlightGear to SimGear.
This is a first step for moving the Canvas system to SimGear to
make it accessible to other applications (eg.FGRadar is going to
use it)
2012-10-19 11:56:32 +02:00
Thomas Geymayer e24e3c0612 Add method SGPropertyNode::addChildren to create multiple children at once 2012-10-14 17:26:52 +02:00
Thomas Geymayer f5cc151618 Extend addChild to allow using first unused index 2012-10-13 15:07:18 +02:00