- made LDDocument use shared pointers, this eliminates a lot of document-related crashes

- subfile inverting now detects flatness and acts accordingly instead of naively applying invertnext to everything

- simplified parse error handling

- when saving, prepare the data first into a buffer and then write to disk, minimizing the time needed to perform the I/O operation.

- made coordinate rounding precision configurable

- further edits to crashcatcher

- crashcatcher: don't use the bomb box at all, instead just write the crashlog and then abort for good

- reformatted the changelog. 0.3-specific changes reformatted to use Zandronum-like version history, this is much easier to work with

- selecting an invertnext'd object now also selects the invertnext

- don't crash when inverting conditional lines

- removed the build time in favor of commit time which I think is much more important

- bfc red/green view and random colors are now mutually exclusive, enabling one disables the other.

- make pick scenes always use particularly thick lines so that the line picking behavior is relayed to the mouse-over highlight

- use a faster ID choosing setup, this should work so long as nobody goes to create 17 million objects

- hopefully stabilized the entire shared pointers deal now

- improved shared pointer behavior, still not there yet

- initial overhaul with smart pointers

- slight refactor in ldobject methods

- renamed some renderer members

- crashcatcher: hide the main window before doing anything and also write the crashlog into a file

- when an object is deleted, if it's the renderer's object-under-cursor the field needs to be cleared or ldforge crashes

- grid-snap the drawn circle radius, not the point used for the distance calculation

- added a macro for adding operator++ and operator-- to enums, less cast hell this way

- significantly sped up selecting all objects, it is now an actually fast operation

- made the mouse-hover object highlight togglable from configuration

- added a selection hover effect to the renderer. selecting objects just became a lot more convenient...

- cut unnecessary code from MainWindow::updateSelection. speeds it up a bit, especially when unselecting but it's not fast enough to my tastes yet

- overhauled configuration setup a bit: configuration entries renamed and are now in a cfg:: namespace

- changed the config dialog's grid ui from being dynamically generated into a static one in the designer interface

- use a function for utf16 type conversion instead of a macro

- grids now have a single coordinate snap value instead of individual X, Y and Z values

- buh

- optimized picking, black is background now in pick scenes

- don't let random colors be too dark (or fully white either for dark backgrounds which use white lines)

- more icons

- fixed: the random colors action wasn't being checked on startup if it was enabled in config, causing it to go out of sync

- some minor cleanup

- simplified the code handling bfc statements a bit

- don't simplify (aka remove extra whitespace from) comment texts

- added build time to window title properly

- removed rest of the uses of <anonymous>

- added changelog entries

- vertex snapping is now smarter, does a depth compare to favor vertices closer to camera and does a short-range 2d check + out-of-range 2d check

- removed some relics from the old immediate mode renderer

- apply #pragma once to glShared.h

- type-aliased QString to String

- resetAngles still needs to request a zoom to fit or the ctrl-0 action doesn't zoom to fit

- more elegant version of ded0a9b, do not zoom to fit in setDocument, instead zoom to fit before rendering

- use #pragma once for the gl compiler header

- when setting the current document, the GL compiler must be told that a merge is necessary *before* setting the renderer's document as setDocument will call zoomToFit which renders the scene. this rendering must trigger a merge or ldforge crashes if a new document is created when a document is already open.

- <anonymous> -> untitled

- reimplemented the Vertex class as a derivative of QVector3D

- more icons

- more icons

- more icons

- started work on new icon set

Merge ../ldforge into gl

- added an icon for random colors

- refactored the gl compiler a tad, made selection blend work with BFC/random colors

- added ability to draw with random colors

- fixed: rotating a subfile would make known verts go out of sync

- use less saturated colors for the axes

- conditional lines are now rendered with stippled lines again

- now works with selection subfiling

- removed more debug stuff

- sped up known vertex information gathering by an order of magnitude

- cleanup

- reimplemented vertex snapping

- removed the debug code

- fixed: use @surfacenum instead of @surfacevbo to GLCompiler::vboSize... this was causing these damn artifacts whose root cause I've been hunting for MONTHS

Merge ../ldforge into gl

- more debug stuff....

Merge ../ldforge into gl

Merge ../ldforge into gl

Merge ../ldforge into gl

- added safety check to the countof macro

- more debugging...

Merge ../ldforge into gl

Merge ../ldforge into gl

Merge ../ldforge into gl

- fixed: an overlay that failed to load no longer attempts to reload it over and over again

- renamed some enumerators, added license header to glcompiler.cc

- subfile coloring now works again

- renamed several GLCompiler members and methods

- only sort and strip duplicates from the objects-staged-to-compile list when actually compiling staged objects, this eliminates needless calls which slowed file loading down a ton.

- fixed zoom value not being initialized properly + some other minor things

- refactor

- hooked object compilation to low-level functions so as to remove the compileObject() crap from edit actions

- objects need to be compiled when added to the document

- ported over the selected color blend from master

- the GL compiler now supports multiple documents

- LDDocument must be initialized with m_needsGLReInit as true or it will not be compiled properly...

- fixed build errors

Merge ../ldforge into gl

Merge ../ldforge into gl

- minor stuff

Merge ../ldforge into gl

- axes are now drawn properly again

Merge ../ldforge into gl

Merge ../ldforge into gl

- greatly improved the GL compiler, now deals colors and object removal properly

Merge ../ldforge into gl

Merge ../ldforge into gl

- work on improved rendering performance

Merge ../ldforge into gl

- now actually renders stuff correctly

- renamed some member variables for clarity

- removed some unneeded code

- converted to VBO

Merge ../ldforge into gl

- refactoring

- rename GLCompiler::Vertex to GLCompiler::VAO to avoid name conflicts

- renamed VertexCompiler to GLCompiler

- reworked the vertex compiler, objects are now colorized properly

- Merge ../ldforge into gl

- Merge ../ldforge into gl

- now compiles again

- Merge commit '5c835eb' into HEAD

now compiles again

Merge branch 'master' into gl

Merge branch 'master' into gl

- moved the uncolorize action to the color toolbar, renamed to uncolor

- use the keyword 'not' in place of the exclamation mark for operator!, this is clearer. also converted uses of '== false' to this.

- renamed some cmake identifiers

- now compiles with clang

- doubled buffer sizes in updaterevision to prevent GIT_HASH from being truncated

- some tweaks to version.cc

- generate gitinfo.h in the build directory, not source directory. made ldforge depend on revision_check properly

- use index-based iterating in LDDocument::closeUnused because deleting documents while iterating over g_loadedFiles causes the iterator to become invalidated

- renamed files to camelCase

- added a long int overload to StringFormatArg

- fixed various compilation issues

- doxygen'd DocumentPointer.h

- doxygenified Version.h

- changed doxygen entity style from @argh to \argh

- whoah whoops

- doxygenified Types.h

- made MessageLog.h and RingFinder.h suitable for doxygen

- added doxygen support for MainWindow.h

- added license header to format.h

- replaced the fmt/log/dlog/fprint macros in favor of template functions. renamed to format, print, dprint and fprint respectively.

- forgot macros.h out of the previous commit

- migrated the codebase to use a simpler PROPERTY macro, arrrrrrrrrrrrrrrrrrrrrgh

- changed header guards into #pragma once

- renamed LDObject::deleteSelf to LDObject::destroy

- unified separator styles

- renamed several LDObject methods

- removed debug stuff

- replaced the left-hand document list with a tab bar

- derp

- separated version stuff to new files to allow version changes be compiled near-instantly

- fixed compilation

- migrated to CMake again

- reorganized the toolbar a little bit

- updated the PROPERTY macro

- refactored filenames

- bleh, don't need IN_IDE_PARSER there..

- added dvalof debug macro

- some corrections to zoomtofit

- removed some pointless typedefs

- changed the default color toolbar

- forgot the invokation deferer files

- refactoring

- added .cfg files to .gitignore

- use the correct text color to draw coordinates on the viewport

- GL-variables that should be document-specific are now properly document-specific (i.e. pan and zoom won't be shared across documents anymore)

- make the remaining virtual methods of LDObject pure virtual

- added a type alias LDObjectList

- whoopsie, forgot to re-add the cache flag to that inline flagset there

- make subfile references subject to position transformation again

- improved rotation point finding behavior. not sure what did I even do to improve it...

- use QCoreApplication::applicationDirPath instead of a custom hack to get the application path

- changelog: the file loading fix was backported to 0.2.1

- configuration is now always situated and read from the application working directory

- did stuff to types, fixed primitive listing

- removed the File class in favor of QFile

- if loading another file to replace an explicitly loaded file, this file won't get closed automatically and thus needs to be manually closed. We also need to check that it's safe to close before doing this. Also fixed a rather argh problem with ::save not using the proper path...

- corrected relationships between documents: opening a main file with the same name as another document is to overload it and editing the document is to invalidate its cache so that it gets rendered properly in other documents possibly referencing it.

- removed the 'str' typedef, use QString directly

- use --long in the git describe command for the GIT_DESCRIBE macro definition

- some cleanup

- reformatting

- added Ball Joint-8 stuff to primitive categories

- updated copyright year in the about prompt

- updated copyright year. Best wishes for 2014!

- when configuration options are default, they need to be removed from the settings

- whoops, forgot an #include in gldraw.cc

- minor edit

- split the ring finder to separate files

- fixed: subfile rotation had matrix multiplication done with operands the wrong way around, causing morphing

- removed some unnecessary full refreshes

- added a configurable select color

(0) -192 +192 tip

mercurial