Commit Graph

71 Commits

Author SHA1 Message Date
Campbell Barton
333cdbb410 Cleanup: comment blocks 2019-04-18 07:59:28 +02:00
Campbell Barton
41d4a19865 ClangFormat: format '#if 0' code in source/ 2019-04-17 08:24:14 +02:00
Campbell Barton
e12c08e8d1 ClangFormat: apply to source, most of intern
Apply clang format as proposed in T53211.

For details on usage and instructions for migrating branches
without conflicts, see:

https://wiki.blender.org/wiki/Tools/ClangFormat
2019-04-17 06:21:24 +02:00
Campbell Barton
de13d0a80c doxygen: add newline after \file
While \file doesn't need an argument, it can't have another doxy
command after it.
2019-02-18 08:22:12 +11:00
Campbell Barton
eef4077f18 Cleanup: remove redundant doxygen \file argument
Move \ingroup onto same line to be more compact and
make it clear the file is in the group.
2019-02-06 15:45:22 +11:00
Pablo Vazquez
3be845ce20 Cleanup: Typos in comments (to to) 2019-02-04 01:23:48 +01:00
Campbell Barton
744f633986 Cleanup: trailing commas
Needed for clan-format not to wrap onto one line.
2019-02-03 14:59:11 +11:00
Campbell Barton
4ef09cf937 Cleanup: remove author/date info from doxy headers 2019-02-02 11:58:24 +11:00
Campbell Barton
65ec7ec524 Cleanup: remove redundant, invalid info from headers
BF-admins agree to remove header information that isn't useful,
to reduce noise.

- BEGIN/END license blocks

  Developers should add non license comments as separate comment blocks.
  No need for separator text.

- Contributors

  This is often invalid, outdated or misleading
  especially when splitting files.

  It's more useful to git-blame to find out who has developed the code.

See P901 for script to perform these edits.
2019-02-02 01:36:28 +11:00
Campbell Barton
9200dc0eb1 Cleanup: preprocessor indentation 2019-01-03 15:52:07 +11:00
Campbell Barton
2083a7e274 Cleanup: style (pointers) 2018-10-11 09:03:39 +11:00
Campbell Barton
bb3ec3ebaf BLI_utildefines: rename pointer conversion macros
Terms get/set don't make much sense when casting values.

Name macros so the conversion is obvious,
use common prefix for easier completion.

- GET_INT_FROM_POINTER  -> POINTER_AS_INT
- SET_INT_IN_POINTER    -> POINTER_FROM_INT
- GET_UINT_FROM_POINTER -> POINTER_AS_UINT
- SET_UINT_IN_POINTER   -> POINTER_FROM_UINT
2018-09-19 12:12:21 +10:00
Campbell Barton
410880552b Cleanup: trailing space for freestyle 2018-06-17 17:05:14 +02:00
Campbell Barton
75fc1c3507 Cleanup: trailing whitespace (comment blocks)
Strip unindented comment blocks - mainly headers to avoid conflicts.
2018-06-01 18:19:39 +02:00
Campbell Barton
72c9141a7a Cleanup: doxygen comments
Also remove duplicate & mismatching comments from grease-pencil header.
Keep comments close to implementation to avoid getting out of sync.
2017-06-19 10:04:30 +10:00
Tamito Kajiyama
7f262acb92 Fix T49479: Freestyle inconsistent line drawing with large geometry dimension.
Ray-plane intersection routine GeomUtils::intersectRayPlane() was used with an
unnormalized direction vector as input.
2016-12-28 18:09:35 +09:00
Campbell Barton
9f5621bb4a Cleanup: comment blocks 2016-07-02 10:08:33 +10:00
Campbell Barton
a269287f36 Cleanup: use single struct for freestyle globals
Was shadowing local vars.
2015-11-23 17:40:09 +11:00
Brecht Van Lommel
b098609186 Fix various compiler warnings. 2015-10-10 17:35:30 +02:00
Campbell Barton
09e40a4956 Cleanup: spelling 2015-09-14 02:22:22 +10:00
Tamito Kajiyama
b9895df36f Freestyle: internal switch from double to float in mesh loading and construction of winged edges. 2015-07-20 06:17:55 +09:00
Sergey Sharybin
13358d049e Freestyle: Code cleanup, prepare for strict C++ flags 2015-03-27 18:23:31 +05:00
Thomas Dinges
e3ed13cbd4 Cleanup: Remove special code for Visual Studio 2008.
Goodbye VC2008, it has been a pleasure (more or less) :D SCons / CMake cleaenup will follow.
Differential Revision: https://developer.blender.org/D715
2014-08-07 13:52:15 +02:00
Tamito Kajiyama
f6e774552c Freestyle: Fix for returned references to auto variables. 2014-05-20 15:12:13 +09:00
Sergey Sharybin
ad2064ae88 Fix compilation error of Freestyle
Seems to be some sort of namespace conflict or so which is
solved by reshuffling the includes a bit.
2014-04-17 16:04:47 +06:00
Tamito Kajiyama
1674a04488 Freestyle: removed unused *_EXPORT qualifiers for building Windows DLLs.
These qualifiers were leftovers of the stand alone Freestyle program and not used
(set to an empty string) in Blender for years.
2014-04-17 14:37:13 +09:00
Tamito Kajiyama
68aea619f5 Replaced assert() with BLI_assert(). 2014-04-17 14:37:11 +09:00
Tamito Kajiyama
3458bad12d Freestyle: removed unnecessary #include files and made minor code cleanup. 2014-04-17 14:37:10 +09:00
Tamito Kajiyama
5db8da8105 Freestyle: Fix for VC++ warnings about 'hypot' macro redefinitions (Part 1).
The issue was caused by including both Python.h and BLI_math.h.  Since the macro
definition in Python.h was unconditional, it was necessary to include it first and then
BLI_math.h.

Addressing the issue turned out to affect many Freestyle source files.  There were several
other coding flaws that complicated the situation:

1. intern/system/FreestyleConfig.h was abused just to include BLI_math.h which was in
fact unnecessary in FreestyleConfig.h.  While addressing this, inclusion of both math.h
and BLI_math.h had to be duly dealt with to avoid a compiler error about round().

2. #include <Python.h> was not properly put in the extern "C" { ... } construct.

3. intern/view_map/Interface0D.h and intern/python/Director.h, both of which included
Python.h, were included from within Freestyle header files that were almost or completely
independent of Python.  These non-Python header files were used everywhere in the
Freestyle code base, causing many cases of the reported macro redefinitions.

4. The Director.h file was also declaring 'using namespace Freestyle', which was causing
another scope issue in several Freestyle header files.

This commit is intended to address the first problem above.  Subsequent commits will deal
with the other three.
2014-04-17 14:37:05 +09:00
Campbell Barton
3deaf7dfca Fix for leak in freestyle transformVertices 2014-04-01 09:45:09 +11:00
Campbell Barton
2c0e32f4e4 Fix for leak in freestyle FitCurve 2014-04-01 09:14:59 +11:00
Juergen Herrmann
25ad7b44a0 Fix for prevoius commit: accidentally changed a ifndef to ifdef. 2014-03-09 00:30:50 +01:00
Juergen Herrmann
5559302369 Cleanup some useless/unneeded #ifdefs for MSVC2013. 2014-03-09 00:25:08 +01:00
Brecht Van Lommel
da5e6b98c9 Fix T38887: error in (still unused) freestyle math function implementation. 2014-02-28 18:15:24 +01:00
Alexandr Kuznetsov
e2429d6492 Woo Hoo. First git commit.
Changes for VC2013

Now, I can build Blender with VC2013 with Cycles, Collada, OpenExr,OpenImageIO disabled. Also, you need VC2008 sp1 installed to make old libs compatible.
2013-11-29 15:13:12 -05:00
Campbell Barton
beae4f498d code cleanup: spelling 2013-10-31 14:10:01 +00:00
Tamito Kajiyama
804643793e Fix for occasional crashes due to numerical instability in Freestyle Perlin noise modifiers with a large 'octaves' value.
Problem report by Light BWK through personal communications, thanks a lot!
2013-10-24 11:41:39 +00:00
Sergey Sharybin
6caad3445e Add stdlib.h to solve compilation error caused by missing abort() prototype
Perhaps we'd better move this include to BLI_utildefines as we made with
with other includes needed for BLI_abort?
2013-08-24 17:15:59 +00:00
Tamito Kajiyama
248e3d74a0 Fix for [#36374] Read unitialized memory in Freestyle.
A variable keeping a bounding box was referenced after it was flagged as empty.
2013-08-24 11:42:00 +00:00
Campbell Barton
98c574e41a use 'greater/less then or equal to' operators rather then adding 1. 2013-08-11 05:40:35 +00:00
Campbell Barton
5129112072 add c++/guardedalloc to more freestyle classes, also remove redundant 'public:' 2013-08-04 18:50:00 +00:00
Tamito Kajiyama
1ab7a6f9af Fix for crash in Freestyle with sketchy chaining and Bezier Curve geometry modifier.
When the sketchy chaining is used, stroke geometry may contain a 180-degree U-turn.
If the 'error' parameter of the Bezier Curve geometry modifier is small (e.g., 10),
Bezier curve fitting will recursively split the original stroke into two pieces.
This splitting may take place at a U-turn point, causing a numerical singularity issue
that leads to a crash.

Problem report by edna in the BA Freestyle thread, with an example .blend to reproduce
the problem.  Thanks a lot!
2013-05-28 00:35:29 +00:00
Tamito Kajiyama
5e4139c50a More fix for memory leaks in the Freestyle module. 2013-05-15 01:30:03 +00:00
Tamito Kajiyama
50c46fb9b3 Further fix for memory leaks in Freestyle Python API components:
- StrokeAttribute thickness setter
- BezierCurve (used from within BezierCurveShader)
- Smoother (used from within SmoothingShader)
2013-05-14 22:51:11 +00:00
Tamito Kajiyama
6ea2dec330 Added support for WITH_CXX_GUARDEDALLOC build option to the Freestyle module. 2013-05-13 22:58:27 +00:00
Campbell Barton
8c1cb10cfd code cleanup: unused vars, make other vars static. 2013-04-10 22:49:50 +00:00
Tamito Kajiyama
3b399edf7d Fix for a crash in the Bezier Curve geometry modifier.
Least-squares fitting parameters were stored in a fixed size array, causing a
buffer overflow depending on the number of input points.
Problem report with a .blend file to reproduce the issue and a bugfix patch by
christiankrupa and jensverwiebe on IRC, thanks a lot!
Many thanks also to Bastien Montagne for forwarding the problem report by email.
2013-04-10 22:20:24 +00:00
Tamito Kajiyama
800f86c845 Attempt to fix a potential name conflict between Freestyle and the compositor.
A crash in the Freestyle renderer was reported by Ton on IRC with a stack trace
below.  Note that #2 is in Freestyle, whereas #1 is in the compositor.  The problem
was observed in a debug build on OS X 10.7 (gcc 4.2, openmp disabled, no llvm).

----------------------------------------------------------------------
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: 13 at address: 0x0000000000000000
[Switching to process 72386 thread 0xf303]
0x0000000100c129f3 in NodeBase::~NodeBase (this=0x10e501c80) at COM_NodeBase.cpp:43
43			delete (this->m_outputsockets.back());
Current language:  auto; currently c++
(gdb) where
#0  0x0000000100c129f3 in NodeBase::~NodeBase (this=0x10e501c80) at COM_NodeBase.cpp:43
#1  0x0000000100c29066 in Node::~Node (this=0x10e501c80) at COM_Node.h:49
#2  0x000000010089c273 in NodeShape::~NodeShape (this=0x10e501c80) at NodeShape.cpp:43
#3  0x000000010089910b in NodeGroup::destroy (this=0x10e501da0) at NodeGroup.cpp:61
#4  0x00000001008990cd in NodeGroup::destroy (this=0x10e5014b0) at NodeGroup.cpp:59
#5  0x00000001008990cd in NodeGroup::destroy (this=0x114e18da0) at NodeGroup.cpp:59
#6  0x00000001007e6602 in Controller::ClearRootNode (this=0x114e19640) at Controller.cpp:329
#7  0x00000001007ea52e in Controller::LoadMesh (this=0x114e19640, re=0x10aba4638, srl=0x1140f5258) at Controller.cpp:302
#8  0x00000001008030ad in prepare (re=0x10aba4638, srl=0x1140f5258) at FRS_freestyle.cpp:302
#9  0x000000010080457a in FRS_do_stroke_rendering (re=0x10aba4638, srl=0x1140f5258) at FRS_freestyle.cpp:600
#10 0x00000001006aeb9d in add_freestyle (re=0x10aba4638) at pipeline.c:1584
#11 0x00000001006aceb7 in do_render_3d (re=0x10aba4638) at pipeline.c:1094
#12 0x00000001006ae061 in do_render_fields_blur_3d (re=0x10aba4638) at pipeline.c:1367
#13 0x00000001006afa16 in do_render_composite_fields_blur_3d (re=0x10aba4638) at pipeline.c:1815
#14 0x00000001006b04e4 in do_render_all_options (re=0x10aba4638) at pipeline.c:2021
----------------------------------------------------------------------

Apparently a name conflict between the two Blender modules is taking place.
The present commit hence intends to address it by putting all the Freestyle C++
classes in the namespace 'Freestyle'.  This revision will also prevent potential
name conflicts with other Blender modules in the future.

Special thanks to Lukas Toenne for the help with C++ namespace.
2013-04-09 00:46:49 +00:00
Campbell Barton
bb98f65112 code cleanup: unused macros 2013-04-08 09:52:43 +00:00
Campbell Barton
829a2cc1b0 remove blender foundation copyright from freestyle files.
this can be added back on case-by-case basis, but better not assume ownership of another projects work by default.
2013-03-31 01:11:07 +00:00