Marek Roszko
cbad18ad98
Hide gal profiling behind KICAD_GAL_PROFILE cmake option
...
__WXDEBUG__ is too easy to get set
2021-04-30 19:24:36 -04:00
Wayne Stambaugh
be8327bd54
GAL memory allocation fixes.
...
Vertex memory allocation uses malloc and realloc without checking the
result. Throw exceptions that can be caught in the DoRepaint() method
in EDA_DRAW_PANEL_GAL when malloc and realloc return a null pointer.
2021-02-22 08:15:09 -05:00
Wayne Stambaugh
e7227a4f21
GAL code cleaning.
2021-02-16 17:25:27 -05:00
Wayne Stambaugh
ede39780e2
Remove all debugging output that cannot be disabled.
...
The use of printf, wxLogDebug, and std::err/std::out causes excessive
debugging output which makes finding specific debugging messages more
difficult than it needs to be.
There is still some debugging output in test code that really needs to
be moved into a unit test.
Add debugging output section to the coding policy regarding debugging
output.
2020-08-18 10:17:36 -04:00
Simon Richter
5acee1962e
Add missing include
...
We need <algorithm> for std::max
2020-05-02 11:19:04 +00:00
Seth Hillbrand
b5f021ff9f
Cleanup: Replace push_back with emplace_back
...
In cases where we create a new item and immediately push into a
container, the emplace idiom is faster and more efficient.
2019-12-05 13:41:21 -08:00
Jeff Young
a25368cc6b
Improve spelling.
...
The groundwork here is thanks to kunda1.
Fixes: lp:1831510
* https://bugs.launchpad.net/kicad/+bug/1831510
2019-08-20 19:14:05 +01:00
Maciej Suminski
8c7175b00d
Upload correct amount of vertex data in CACHED_CONTAINER_RAM
...
Previous implementation uploaded only vertices with indices less
or equal to the number of stored vertices, which is invalid when
the container become fragmented.
Fixes: lp:1712887
* https://bugs.launchpad.net/kicad/+bug/1712887
2017-09-09 21:07:32 +02:00
Maciej Suminski
342bb2bf78
Code formatting
...
Renamed VERTEX related constants to follow UPPER_CASE naming.
2017-09-09 21:07:32 +02:00
Maciej Suminski
4ae29aa693
Fixed a shadowing variable warning
2017-08-08 15:31:45 +02:00
Maciej Suminski
262fcc91af
Fixes for video cards unable to use gl{Un,}MapBuffer correctly
...
Fixes: lp:1685335
* https://bugs.launchpad.net/kicad/+bug/1685335
Fixes: lp:1683041
* https://bugs.launchpad.net/kicad/+bug/1683041
2017-08-08 14:26:05 +02:00
jean-pierre charras
fff449ecf0
Performance counter rework: Add comments, fix coding style issues.
2016-12-31 13:00:24 +01:00
Simon Richter
ac9f858813
Performance counter rework
2016-12-31 12:57:42 +01:00
Maciej Suminski
7f5bce3772
More robust condition for checking sufficient space in CACHED_CONTAINER
...
Having enough space is not enough, we need a continuous block of memory.
2016-08-18 17:18:13 +02:00
Maciej Suminski
c6e4f67589
Fixed cached container data corruption on resize (OpenGL GAL)
2016-08-08 14:18:25 +02:00
Simon Richter
eb45f02138
Avoid pointer truncation in debug message
2016-06-10 11:06:47 +02:00
Maciej Suminski
2f09e0ee40
Alternative version of CACHED_CONTAINER::defragmentResize() Certain GPUs do not support glCopyBufferSubData(), therefore there is an alternative version working with good, old memcpy().
2016-05-02 16:15:24 +02:00
Maciej Suminski
3e3ecccb2b
A few more fixes related to the previous commit.
2016-05-02 16:15:23 +02:00
Maciej Suminski
6e881f51fd
Changed bound buffers to improve compatibility (OpenGL GAL).
2016-05-02 16:15:23 +02:00
Maciej Suminski
a3a9641ae2
Disable invalidating buffer on CACHED_CONTAINER::Clear(). OpenGL context is not available when the method is called, so it does not work.
2016-05-02 16:12:18 +02:00
Maciej Suminski
5a8adcdf52
Improved testing/profiling code for CACHED_CONTAINER. Switched from wxLogDebug to wxLogTrace. Adjusted CACHED_CONTAINER_TEST levels required for certain tests. Added a test to check used space in the container.
2016-05-02 16:12:17 +02:00
Maciej Suminski
54f3105cfb
More changes to CACHED_CONTAINER. Removed m_itemSize field (error-prone, as it had to be synchronized with m_item->GetSize()) Fixed a bug in reallocate() method, changed a bit it is behaviour. VERTEX_ITEM is not stored in the item set if its size is 0.
2016-05-02 16:12:17 +02:00
Maciej Suminski
deb578eadd
Recognize a special case of completely filled/defragmented container when resizing.
2016-05-02 16:12:17 +02:00
Maciej Suminski
a9c3a1730b
Free chunks in CACHED_CONTAINER only if they are really not needed.
2016-05-02 16:12:16 +02:00
Maciej Suminski
702be4903f
Vertices are stored in GPU memory (OpenGL GAL).
2016-05-02 16:12:16 +02:00
Maciej Suminski
01912aaabd
Minor refactoring in CACHED_CONTAINER.
2016-05-02 16:12:16 +02:00
Maciej Suminski
99e7e8c983
Disabled CACHED_CONTAINER freeing memory on GAL<->legacy switch.
2016-04-04 13:54:55 +02:00
jean-pierre charras
18cb83f5c7
OpenGL mode: Disable frequent (and not very usefull) memory deallocation/reallocation to avoid "out of memory" issue due to heap fragmentation (noticeable only with large boards).
...
Note: there is still this issue when switching back legacy mode and to Opengl mode because the heap is still freed and reallocated.
2016-04-04 12:41:48 +02:00
jean-pierre charras
426f7ebb2e
Rework on class EDA_TEXT and related classes and draw text functions. More work: remove useless or duplicate code (from legacy graphic text plot functions). Move basic_gal code to separate files.
2016-03-25 09:33:45 +01:00
jean-pierre charras
ecad3ad235
Netlist generator: avoid changing the order of parts in libparts section each time libraries are reloaded.
...
pic_programmer demo: very minor fix and update netlist.
cached_container.cpp: more info when the message "Out of memory" is displayed.
2015-11-05 17:28:31 +01:00
Maciej Suminski
4739c54f0e
Few minor updates to CACHED_CONTAINER & GPU_MANAGER classes. - Reduced the number of memory reallocations - Updated code for tests
2015-08-03 21:12:00 +02:00
jean-pierre charras
6e8a8a6b25
Fix some coverity warnings (mainly not initialized members)
2015-03-21 10:06:04 +01:00
Alexander Golubev
f2ce42ddb5
fix several -Woverloaded-virtual warnings in common/* dir
...
- CACHED_CONTAINER::GetVertices: removed useless and unused function
which does nothing but tainted the API
- SHAPE_LINE_CHAIN::Collide( const BOX2I& aBox, int aClearance ):
removed an outdated function with assert(false)
- SHAPE::BBox(): fix a small typo in the doc string
2015-03-06 15:26:47 +01:00
Maciej Suminski
5235d7e5eb
Modified error handling for OpenGL backend, now error messages should be visible.
2013-11-11 10:48:49 +01:00
Maciej Suminski
bc305859b2
Mainly case changes.
2013-10-14 20:40:36 +02:00
Maciej Suminski
0ac3e1fbf2
Namespace KiGfx->KIGFX.
...
template<> -> template <>
Some more reformatting according to uncrustify results.
2013-10-14 16:13:35 +02:00
Maciej Suminski
936e0be090
Uncrustified the push&shove source, fixed some warnings.
2013-09-27 10:00:26 +02:00
Maciej Suminski
b04de0cada
Fixed memory leaks in containers.
2013-09-12 09:44:57 +02:00
Maciej Suminski
5242fff9d7
Code refactorization. VBO_CONTAINER is split to [NON]CACHED_MANAGER, GPU_MANAGER and VERTEX_MANAGER.
2013-07-22 10:41:12 +02:00