Commit Graph

1635 Commits (942bf3f35409ac58b3f2bc90144dea67a96f6200)

Author SHA1 Message Date
Ryan Pavlik ffef006b31 Add a .clang-format file - not for bulk use!
This would add a lot of noise to the history, etc. if applied all
over now. Use git clang-format to apply it solely to your changes.
2019-05-23 14:16:00 +00:00
EvilSpirit c9397eaa07 Make help text for image and TTF request creation reflect reality.
Before this commit it would prompt for top left and bottom left
corner, neither of which was what in fact was being used. Those two
specific points cannot be used because of the way equations are
written, so instead change that to top left and bottom right, which
is more convenient anyway.
2019-05-23 14:05:09 +00:00
whitequark 3296474c15 Rework tooltip implementation to track tip area.
This fixes an elusive GTK issue where tooltips would be spuriously
displayed, and makes tooltips behave nicer on Windows.

Unfortunately the macOS code is unchanged as the macOS tooltip
implementation seems seriously broken in ways I do not understand.
2019-05-23 13:54:24 +00:00
whitequark f6484c78e7 macOS: fix a crash at startup introduced in 75a09c8b. 2019-05-23 12:40:40 +00:00
whitequark e9b9dca2ca Win32: use native OpenGL drivers, if available.
After this commit, if the target system does have modern OpenGL
drivers installed, ANGLE is configured to use them, bypassing most
translation (shaders still have to be translated from ESSL to GLSL).

If there are no OpenGL drivers, such as if the graphics drivers were
installed via Windows Update, DirectX translation is still used. This
results in a very noticeable startup delay and minor performance
degradation.

In addition it is no longer necessary to build with -DOPENGL=1 to be
able to run the binary in wine; everything works out of the box.
Before, wine's incomplete HLSL translator would crash.

This change required renaming the variable `texture` in shaders,
since it shadows the Core GLSL function with the same name, and ANGLE
translates texture2D() calls to texture() calls.
2019-05-23 10:58:31 +00:00
whitequark 09212963ed Update copyright statement in about box.
Also, make sure it's localized properly.
2019-05-23 07:43:29 +00:00
whitequark 25b6eba148 Adjust angle label margin similarly to eda294ef. 2019-05-21 23:05:05 +00:00
whitequark 9500487a3f Fix an edge case with fps measured as infinite.
If the timer is not sufficiently high resolution but the graphics
card is fast, we can get renderTime.count() == 0.
2019-05-21 22:51:28 +00:00
Ryan Pavlik 39c348090b Add CountIf method to IdList to simplify some call sites. NFC.
This also changes GetNumConstraints to return size_t.
2019-05-21 01:19:11 +00:00
Ryan Pavlik 43c9cba7dd Reduce Vector::Element calls in SKdNode::SnapToVertex. NFC. 2019-05-21 01:19:09 +00:00
Ryan Pavlik f885daf752 Simplify. NFC. 2019-05-21 01:14:42 +00:00
whitequark 75a09c8b67 Minor cleanups. NFC.
A few code style changes extracted from the Emscripten port.
2019-05-21 00:48:20 +00:00
whitequark 7f75148671 Win32: ignore WM_MOUSEWHEEL events that are forwarded to other window.
Before this commit, scrolling the property browser positioned on top
of a face in the main window would highlight the face.
2019-05-20 22:58:07 +00:00
whitequark 5dbe090098 Win32: do not insert windows with parents after HWND_TOPMOST.
It is not clear why this code was added (I don't remember) and
the normal parent-child relationship should be sufficient for
the task of keeping property browser on top of the main window.

With SetWindowPos(hwnd, HWND_TOPMOST) though, the property browser
window stays on top of *anything*, even if the user switches to
an entirely different application.
2019-05-20 22:43:29 +00:00
whitequark be0dc7e2cb Win32: silence a GetProcAddress-related warning. 2019-05-20 22:12:45 +00:00
whitequark e11e23483d Win32: remove dead code in keyboard event handling.
The forwarding is now performed explicitly in the text window setup
code, so this branch never has a chance to run.
2019-05-20 21:52:06 +00:00
whitequark bda3b80609 GTK: fix last remains of legacy event handling code. 2019-05-20 21:42:37 +00:00
whitequark f43954cc29 Adjust GL1 and GL3 ReadFrame to take pixel ratio into account.
Currently, on HiDPI screens the Export Image command would return
a cropped screenshot.
2019-05-20 19:09:40 +00:00
whitequark 11c5cdc7b0 Adjust GL3 ReadFrame() for GL ES 2.1 compatibility.
Currently on Win32 this errors out and renders a black rectangle.
2019-05-20 19:09:40 +00:00
Ryan Pavlik c18deb2d81 test harness: Identify build host system in CMake to use for path separator.
Before, would guess incorrectly if the CMake source tree was specified
via a relative path (since then the path would not start with /).
Now, directly asks CMake if building on Windows or something else,
and sets a define.
2019-05-20 16:47:38 +00:00
Ryan Pavlik 62aba398f7 Move two members of Vector to be inline.
Performance change: moved since they show up disproportionately
in profiling.
2019-05-15 19:53:38 +00:00
William D. Jones 201e15e68a Three.js: update inaccurate comment. NFC. 2019-05-13 16:02:09 +00:00
whitequark b97a80b6ed Three.js: style fixes. NFCI. 2019-05-13 16:02:09 +00:00
William D. Jones 6f9358ae95 Three.js: fix rotate and pan on HiDPI devices. 2019-05-13 16:02:09 +00:00
William D. Jones 26c8cdcb37 Three.js: fix mousemove event listener.
The mousemove event does not return button press information;
refactor into two handlers based on button press.
2019-05-13 16:02:09 +00:00
Ryan A. Pavlik 52a481cd1e Small performance optimization in Vector::Equals.
This function showed up surprisingly high on a CPU time profile
when the GUI was unresponsive "doing things". Removed a duplicated
difference in the not-equal case, and switched to abs and a single compare
instead of two compares with a negation. It seems to have moved the
function further down in the profile.
2019-05-13 15:21:18 +00:00
whitequark 838126f81f GTK: rework f07e975d to fix build on both pre and post 3.24 GTK. 2019-05-13 15:21:11 +00:00
Bauke Conijn 7d181f0d0f Include custom styled entities in the same plane when exporting section. 2019-05-13 14:34:22 +00:00
whitequark c44a471649 Win32: fix destruction order issue leading to crash on close. 2019-05-13 09:13:55 +00:00
Zhuowei Zhang f07e975db1 GTK: fix build on Ubuntu 18.04 by removing debug define
Ubuntu 18.04 uses GTKMM 3.22.2-2, which doesn't support native file chooser.

Commit bc3e09edbf checks if native file chooser
is available, but the result is overridden with a hardcoded define,
probably for debugging.

Removing the debugging code fixes build on Ubuntu 18.04.
2019-05-13 07:03:22 +00:00
whitequark 0b7b8a40e2 Linux: add Flatpak integration.
To test it, use:
  $ ./pkg/flatpak/build.sh
  $ flatpak install ./pkg/flatpak/solvespace.flatpak
  $ flatpak run com.solvespace.SolveSpace
2019-05-11 17:04:25 +00:00
whitequark bc3e09edbf GTK: use native file chooser dialog, if available.
This requires GTK 3.24+ and (at least for GTK 3.24) the environment
variable GTK_USE_PORTAL to be set to 1.
2019-05-08 22:59:20 +00:00
whitequark e7b75f19c3 Revert "CMake: replace GetGitCommitHash with .gitattributes and $Id$."
This reverts commit c962357b35.

$Id$ inserts the SHA1 of the *blob*, not the *commit*, and is
therefore completely worthless.
2019-05-01 08:32:59 +00:00
whitequark fa66229030 Fix choice of normal for revolution in some corner cases.
Before this commit, if the sketch contain no entities with starting
points off of the axis of revolution, the revolution may fail, which
manifests as the face normals being inverted. The code at the top of
MakeFromRevolutionOf() takes the furthest point from the axis,
projects it on that axis to get a vector. In this case that vector
is essentially zero length except for rounding errors.

After this commit, instead of only considering start points of
beziers, all control points are considered.

Fix by @phkahler.
2019-04-22 11:50:47 +00:00
whitequark b69ef71e63 Fix misuse of Path in dc6c7bd0. 2019-04-21 06:54:46 +00:00
probonopd dc6c7bd0ce Add a lookup for resources in ../share/solvespace.
This is useful for relocatable bundles, e.g. AppImage or NixOS.
2019-04-21 06:16:35 +00:00
whitequark 945a28277f README: update submodule instructions. 2019-04-13 21:11:10 +00:00
whitequark ce0b130d6c Disable mnemonics when pathnames are used as menu item labels.
Based on a patch by Matthew White.
2019-04-13 11:02:43 +00:00
whitequark a7b2f28999 Silence some gcc 7 warnings.
* Mark switch fallthrough
    (-Wfallthrough);
  * Initialize variables to avoid false positives
    (-Wmaybe-uninitialized);
  * Fudge indentation to avoid false positives
    (-Wmisleading-indentation).
2019-03-28 09:46:16 +00:00
whitequark 8903e1768c Travis, Appveyor: remove IRC notifications.
These are now handled through GitHub status changes, and so the one
notifico instance works just as well, and needs less configuration
in the repository.
2019-03-28 09:12:00 +00:00
Sergiusz Bazanski 3a3a2755bf Implement Q3DO export.
We plan to use flatbuffers in the future for the next generation of
the .slvs file format, so flatbuffers are built unconditionally; and
the Q3DO exporter itself is tiny.
2019-03-28 08:53:37 +00:00
Bauke Conijn 9d1601eea9 Fix uninitialized memory access in toolbar. 2019-02-19 11:35:56 +00:00
Bauke Conijn 8d07a6b4f4 Import missing styles from linked files. 2019-02-19 10:42:14 +00:00
Sergiusz Bazanski 9e512882d1 Add checkbox to control automatic line constraints
Signed-off-by: Sergiusz Bazanski <q3k@q3k.org>
2019-02-11 13:17:38 +00:00
whitequark b2418a0324 README, CONTRIBUTING: mention the CLA. 2019-02-11 12:47:07 +00:00
whitequark f4d394a107 README: add note on cross-compilation from Ubuntu. 2019-02-11 11:09:44 +00:00
whitequark 94b26ddfac Add a built-in Bitstream Vera Sans Roman font.
Before this commit, the default font chosen for TTF text is Arial
(chosen by the basename of arial.ttf), which isn't present on most
Linux systems, and cannot be redistributed. After this commit, it is
replaced with Bitstream Vera Sans, which can be. Existing files
are not affected.

The font name in the TTF file was artificially modified to add
the (built-in) suffix, which will need to be done if more built-in
fonts are added.
2019-02-11 11:03:47 +00:00
Bauke Conijn e69478e61a Let tangent arc modify the original entities.
Modifying the original entities instead of deleting them, retains the
original associated constraints. This makes creating rounded rectangles
a lot easier.
2019-02-11 10:45:11 +00:00
whitequark c0678d7bdd Update ANGLE. 2019-02-10 09:52:42 +00:00
whitequark c962357b35 CMake: replace GetGitCommitHash with .gitattributes and $Id$. 2019-02-10 09:41:11 +00:00