Commit Graph

1910 Commits (5c899617b4da7f60a638079d629198b2b75442ba)

Author SHA1 Message Date
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
whitequark e383b7fba8 Remove superfluous glPolygonOffset() call in GL3 renderer.
This caused red fringes on mesh boundary with back faces turned on.
2019-02-04 20:41:50 +00:00
whitequark 28fa348859 Use correct polygon winding order in GL3 renderer. 2019-02-04 20:25:45 +00:00
whitequark 1012373818 Update libdxfrw. 2019-01-10 07:30:24 +00:00
whitequark 8e4c4b0d46 Check return values of fread, etc in ReadFile/WriteFile. 2019-01-10 07:12:12 +00:00
Toon Verstraelen 8f2af5b228 Add Fedora packages to README and add sudo before apt 2018-11-10 08:26:50 +00:00
whitequark 52c41782d8 cli: fix typo. 2018-11-08 04:10:14 +00:00
luz.paz 258545a334 Misc. typos
Found via `codespell -q 3 --skip="./res/locales,./extlib"`
2018-09-19 18:52:11 +00:00
whitequark 4d1e1341d9 GTK: fix an use-after-free in message dialog ShowModal(). 2018-08-03 13:39:00 +00:00
Henrik Enggaard fc873c550c Remove double word in DOC.txt 2018-08-01 21:06:06 +00:00
whitequark 42bc7efa44 Fix Z-index of UI elements drawn by the color picker.
Also fix asymmetric crosshairs, while we're at it.
2018-07-31 21:26:47 +00:00
whitequark 21d1a625e3 Fix a few warnings emitted by Clang. 2018-07-31 21:03:52 +00:00
whitequark 80c111bf75 Finish OpenGL 2 to OpenGL 3 renaming started in ecb6550b. 2018-07-31 21:01:28 +00:00
whitequark 4d1bd55cc2 GTK: fix dismissing the editor with Escape.
Before this commit, the editor was simply hidden, and as a result
pressing Escape in the color chooser would leave the latter open.
2018-07-31 20:49:56 +00:00
whitequark 88d59ea765 README: mention third-party Debian/Ubuntu packages. 2018-07-31 17:35:21 +00:00
whitequark eda294efb5 Adjust the horizontal constraint label margin to equal vertical.
Right now, horizontally placed labels appear more cramped than
those that are placed vertically.
2018-07-31 17:21:15 +00:00
whitequark 1a2911fb51 extlib: use https:// URL for the freetype submodule. 2018-07-31 16:58:32 +00:00
Alexander Meißner bc6a923c4c macOS: fix crash on startup.
Added missing @synthesize acceptsFirstResponder;
Replaced generic ApplicationDelegate in MainMenu.xib
2018-07-31 15:55:11 +00:00
whitequark c3875cba9e Add missing override qualifier. 2018-07-31 15:54:31 +00:00
whitequark 2b4c484dcb Discard fragments with zero texture alpha in imesh_tex.frag.
This makes image requests that have an image with a hole in it
actually transparent, since otherwise the depth test would prevent
any geometry behind the request from being drawn.
2018-07-28 12:33:32 +00:00
whitequark a4644cc58d GTK: fix message dialogs not being responsive to buttons. 2018-07-22 09:00:13 +00:00
whitequark 8426992f27 Eliminate blocking in Error() and Message() calls.
This serves two purposes.

First, we want to (some day) convert these messages into a less
obtrustive form, something like toaster notifications, such that they
don't interrupt workflow as harshly. That would, of course, be
nonblocking.

Second, some platforms, like Emscripten, do not support nested event
loops, and it's not possible to display a modal dialog on them
synchronously.

When making this commit, I've reviewed all Error() and Message()
calls to ensure that only some of the following is true for all
of them:
  * The call is followed a break or return statement that exits
    an UI entry point (e.g. an MenuX function);
  * The call is followed by cleanup (in fact, in this case the new
    behavior is better, since even with a synchronous modal dialog
    we have to be reentrant);
  * The message is an informational message only and nothing
    unexpected will happen if the operation proceeds in background.

In general, all Error() calls already satisfied the above conditions,
although in some cases I changed control flow aroudn them to more
clearly show that. The Message() calls that didn't satisfy these
conditions were reworked into an asynchronous form.

There are three explicit RunModal() calls left that need to be
reworked into an async form.
2018-07-20 04:40:19 +00:00
whitequark 70177166d7 I18n: add de-DE locale. 2018-07-20 04:40:19 +00:00
whitequark 396cac556d Add missing virtual destructors. 2018-07-19 22:42:24 +00:00
whitequark c37cddfc7f I18n: internationalise some messages that were missing gettext calls. 2018-07-19 21:51:27 +00:00
whitequark fb138f496a Add final qualifiers where applicable.
We have a lot of classes with virtual functions but no virtual
destructor, mostly under render/. While this is not a problem
due to how our hierarchy is structured, some versions of clang
warn about this on the delete statement inside shared_ptr.

We could add a virtual destructor, but adding final qualifiers
expresses intent better, is generally more efficient (since it allows
devirtualizing most virtual calls in render/), and solves
the potential problem clang is warning us about.
2018-07-19 00:11:04 +00:00