1
0
Fork 0
Commit graph

70 commits

Author SHA1 Message Date
Thomas Geymayer
eba03b5e46 Allow placing canvas on scenery objects. 2013-03-21 01:16:47 +01:00
Thomas Geymayer
0bc5a813a8 Revert "Ensure immediate canvas update inside GUI windows."
This reverts commit 07f01bd734.

We don't need this anymore as there is now a proper fix
in SimGear.
2013-03-11 21:24:40 +01:00
Thomas Geymayer
07f01bd734 Ensure immediate canvas update inside GUI windows.
Ensure canvas displayed inside GUI windows are updated in the same
frame as the according window is made visible. This prevents
showing previous contents for the first frame.
2013-03-10 20:43:14 +01:00
Thomas Geymayer
1c905e5881 Typos, license headers... 2013-03-06 01:04:52 +01:00
Thomas Geymayer
1b49f5cc78 Canvas Window: use new CanvasImage method to handle events 2013-02-28 01:15:59 +01:00
Thomas Geymayer
38ca30cbd5 Ignore events if canvas::Window is not visible 2013-02-13 12:10:25 +01:00
Thomas Geymayer
c0173cf2b5 Improve mouse event capturing with Canvas windows.
- Don't capture mouse events if mouse mode has
   pass-through disabled. This behaviour is
   consistent with the PUI dialogs and allows
   changing moving view and controls while above
   any GUI dialog.
 - Add option to canvas windows to ignore all
   events and let them pass through
   ("capture-events").
2013-02-07 23:08:53 +01:00
Thomas Geymayer
7ce1e100d7 Reapply canvas placements upon aircraft-model reinit 2013-02-06 01:23:06 +01:00
Thomas Geymayer
0a879d3c65 Fix canvas gui size sometimes not initialized correct 2013-01-01 13:45:45 +01:00
Thomas Geymayer
c9976155d6 Update to latest SimGear and fix eating up every 2nd scroll event 2012-12-13 23:39:41 +01:00
Thomas Geymayer
4bf4754f7b Allow Canvas Windows to be resized by dragging
- Setting 'resize' property to true on canvas::Window shows
   resize icons and exposes requested size to the property
   tree. This can be used eg. from Nasal to actually resize
   the window and/or show a preview of the resized window
   while resizing.
 - Event handling now ignores events which have already
   been handled. Before eg. clicking inside a window
   also caused picking to be performed inside the
   scene which is for sure not the expected behaviour.
 - Also forwards scroll wheel events from canvas::Window.
2012-12-13 14:12:29 +01:00
Thomas Geymayer
e62649e075 CanvasWidget: Retrieve texture id every frame.
If the size of a Canvas changes also the texture id
changes. We now retrieve the texture id for the CanvasWidget
every frame to ensure it uses the latest texture instance.
2012-12-09 23:15:49 +01:00
Thomas Geymayer
13cec7bd99 Canvas MouseEvent now provides client and screen position 2012-12-08 15:02:15 +01:00
Thomas Geymayer
91bc5e522a Canvas add event time and expose current click count 2012-12-06 23:27:25 +01:00
Thomas Geymayer
28f2779c4b Forward mouse events from (PUI) CanvasWidget to Canvas for new DOM like callbacks 2012-12-02 13:33:16 +01:00
Thomas Geymayer
e5286f1217 More work on Canvas event handling/adapt for simgear changes 2012-11-27 13:56:53 +01:00
Thomas Geymayer
846a838c70 Expose NasalSys::gcSave/gcRelease to Canvas 2012-11-22 01:06:22 +01:00
Thomas Geymayer
258d387d15 Allow setting emission for each canvas placement 2012-11-21 13:07:57 +01:00
Thomas Geymayer
7e7d921515 Adapt for latest SimGear changes and insert missing bracket 2012-11-06 18:50:14 +01:00
Thomas Geymayer
28779e7a51 Update for new simgear Canvas system.
A refactored version of the Canvas system can now be found in
SimGear.
2012-11-04 14:18:31 +01:00
Thomas Geymayer
71eeb62c1b Simplify canvas OpenVG initialization and fix sometimes rendering too lazy 2012-10-31 01:44:25 +01:00
Thomas Geymayer
4e75587332 Refactor PropertyBasedElement and Manager 2012-10-29 16:19:13 +01:00
ThorstenB
076bbb8487 Fix some compiler warnings.
Unused vars, loss of precision, bool type conversions.
2012-10-13 17:59:47 +02:00
James Turner
4994973ef4 Separate instruments from cockpit displays. 2012-10-05 18:13:50 +01:00
Thomas Geymayer
f462dfdfac Canvas: default fill-rule to evenodd and make it configurable 2012-09-29 19:54:31 +02:00
Thomas Geymayer
37d0c19f7c Canvas: Make path destroying more robust 2012-09-27 14:41:00 +02:00
Thomas Geymayer
b8b4fb00f8 Canvas: On z-index change move element always to last position of elements with same z-index 2012-09-26 23:52:43 +02:00
Thomas Geymayer
3b10fc5f3e Canvas: Support z-index inside Groups/Maps 2012-09-26 18:09:06 +02:00
Thomas Geymayer
703bb9bbf3 Retrieve property node once instead of using fgGetXXX 2012-09-26 12:18:47 +02:00
Thomas Geymayer
6dd4782254 Canvas: Proper fix for OpenVG init handling.
- Redraw all canvases in the frame OpenVG is initialized.
   Otherwise if multiple canvases are created in the same frame
   only one of them would get correctly updated.
2012-09-25 23:24:29 +02:00
Thomas Geymayer
16d73f4012 Canvas: Redraw if OpenVG has been initialized.
If OpenVG/ShivaVG is initialized nothing is drawn in the same
frame, therefore we need to draw another frame to ensure all
paths are rendered correctly.
2012-09-25 21:34:58 +02:00
James Turner
9426928cdf Fix a typo. 2012-09-25 10:07:11 +01:00
Thomas Geymayer
efe978e679 Canvas: Fix detection if something has changed
- Reset dirty flag for redrawing canvas properly after
   rendering has complted.
 - Update path properly if path elements have been removed.
2012-09-23 17:31:12 +02:00
Thomas Geymayer
0f850312ea Canvas: Support for pseudo non-zero fillrule 2012-09-21 22:03:58 +02:00
Thomas Geymayer
4a94071ed7 Canvas: Performance improvements.
- Only render the canvas if something has actually changed
   (Currently checked by looking for modified properties).
 - Only write bounding box to property tree if it has been
   recalculated (until now this happened every frame).
2012-09-21 22:03:58 +02:00
Thomas Geymayer
f0927fc06d Canvas: Change default fill-rule to nonzero 2012-09-21 00:42:21 +02:00
James Turner
f7878cfd4d Fix a Clang warning in Shiva. 2012-09-19 15:55:49 +01:00
Thomas Geymayer
09ac319e87 Canvas: Don't crash on removing child hierarchie from map
Currently if a SGPropertyNode is removed from the property tree
only for this single node a childRemoved event is triggered. So
if we just check for a specific child to be removed, we will never
be notified. This commit manually triggers the event recursively
for all children but this should probably go directly into simgear.
2012-09-18 23:21:50 +02:00
Thomas Geymayer
9f5790c843 Canvas: Use seperate projection instance for each map 2012-09-18 00:33:36 +02:00
Thomas Geymayer
7463ebad1d Canvas: Only use cull callback if it's still valid 2012-09-01 16:50:21 +02:00
Thomas Geymayer
ced478cf95 Canvas: CSS like property value inheritance.
- Groups store property nodes for different styles and pass them
   to child elements on creation (No dynamic updates yet)
 - Use StyleSetter map instead of loads of if/else if statements
   for setting element styles.
 - Unify element style properties (Only use one property, instead
   of multiple like it has been with colors)
 - Fix: Create only one element per property node (Was two)
2012-08-23 20:00:13 +02:00
Thomas Geymayer
ec73c62da5 Canvas: Fix stupid off-by-one error 2012-08-13 20:29:08 +02:00
Thomas Geymayer
875b59952b Canvas: Bugfixes
- Fix dependency cycle
 - Correctly forward mouse release event
2012-08-13 14:11:26 +02:00
Thomas Geymayer
624522b426 Canvas: Don't crash if texture not available 2012-08-12 20:23:31 +02:00
Thomas Geymayer
948d87e561 Canvas: Basic support for window stacking 2012-08-11 23:38:04 +02:00
Thomas Geymayer
544784ca85 Canvas: Forward mouse events to elements.
- Use bounding box intersections to determine which element is
   hit.
 - Transform mouse coordinates to local coordinates.
 - Try to get osgText bounding box correct (or at least better)
2012-08-10 13:11:06 +02:00
Thomas Geymayer
288e7fa5ca Canvas: default image element dimensions to texture size 2012-08-09 21:58:55 +02:00
Thomas Geymayer
83bbd9e45c Canvas: Image/Window unifying and allow using canvas inside canvas.
- Refactor and unify common functionality of canvas::Window and
   canvas::Image
 - Make canvas::Image actually work
 - Allow using canvases inside canvas::Image
   * Use new canvas:// "protocol" to allow using canvases in
     place of images
 - Prepare for categorizing canvases:
   * Move canvases to /canvas/by-index
   * Later support linking to other nodes in subbranches of
     /canvas
2012-08-09 16:13:38 +02:00
Thomas Geymayer
350d508324 Clean up
- Replace deprecated boost::shared_static_cast with
   boost::static_pointer_cast
 - Use boost::ends_with in favor of own implementation.
2012-08-09 13:22:48 +02:00
James Turner
310ddbf8c5 Initial work on Image element for Canvas. 2012-08-05 22:43:01 +01:00