Maciej Suminski
3fcae6b120
Fixes for OpenGL resources handling.
2016-06-07 14:42:42 +02:00
Maciej Suminski
b4ad18a3ea
Do not rebuild shaders on each OPENGL_GAL construction.
2016-06-03 15:46:13 +02:00
Maciej Suminski
b83c148e10
Delete OpenGL context on GLCanvas subclasses destruction.
2016-06-03 15:46:13 +02:00
Maciej Suminski
68b6da57c0
Removed OPENGL_GAL::instanceCounter.
2016-06-03 15:46:12 +02:00
Maciej Suminski
01f32dd52c
GL_CONTEXT_MANAGER class to avoid unexpected GL context switches.
2016-06-03 15:46:12 +02:00
Maciej Suminski
4f7bb4c0f7
Simplified error checking in OPENGL_GAL test.
2016-06-03 15:46:11 +02:00
jean-pierre charras
3e2cae946c
Corrected wxDC objects used by EDA_DRAW_PANEL_GAL & OPENGL_GAL.
2016-06-03 15:46:11 +02:00
José Ignacio Romero
5832e37177
GAL: Fix offset problem in multiline text rendering
...
Commit BZR 6703 introduced a minor horizontal adjustment for stroke
text rendering in GAL, but the Translate() call was done before
calling Save(). So, when this function was called multiple times a
residual offset carried over to each subsequent line.
bzr 6703 = git 67982a4
2016-05-29 17:40:11 -04:00
jean-pierre charras
1ae9175671
A few minor fixes for compil warnings (shadowed variables and deprecated auto_ptr)
2016-05-29 17:02:34 +02:00
jean-pierre charras
ca0113ab65
Fix my previous commit: I committed the wrong file
2016-05-28 21:51:35 +02:00
jean-pierre charras
b7f863dc4c
Fix the commit 6838 (Fix non optimal position of net name and pad name in GAL mode), broken.
2016-05-28 21:46:13 +02:00
Simon Richter
96ec9db5d6
Add missing C++ stdlib headers
...
The GCC standard library headers often include other headers, which makes
some code compile that forgets to include several headers.
2016-05-28 12:46:29 -04:00
Maciej Suminski
ade1d1fe74
Fixed display of 'b' letter in OpenGL canvas.
2016-05-27 14:44:44 +02:00
Maciej Suminski
2ded7bf82a
Improved error handling for SHADER class.
2016-05-23 09:54:53 +02:00
Maciej Suminski
a42cb0ef8c
OpenGL GAL: Set context in destructor when possible (under Linux the window has to be visible).
2016-05-09 18:00:34 +02:00
Maciej Suminski
d9f4877c94
Fixed a crash when starting pcbnew with OpenGL GAL.
2016-05-09 17:23:01 +02:00
Maciej Suminski
cca36d355a
Remove unnecessary debug messages (OpenGL GAL).
2016-05-04 10:10:15 +02:00
Maciej Suminski
22c4e4d240
Set OpenGL context only when the parent window is visible.
2016-05-03 16:39:58 +02:00
Maciej Suminski
55976e39ef
Fixed crash occuring when a vertex buffer is mapped in invalid OpenGL context.
2016-05-03 16:16:59 +02:00
Maciej Suminski
a62d2b5412
Bigger net labels (GAL).
2016-05-03 15:15:08 +02:00
Maciej Suminski
8d952f35c6
Fixed text vertical alignment for bitmap font (OpenGL).
2016-05-03 11:58:48 +02:00
Maciej Suminski
58ed0c8cce
Improved grid drawing routine (OpenGL).
2016-05-02 16:15:24 +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
d23a508aa3
Fixed errors introduced to STROKE_FONT class.
2016-05-02 16:15:23 +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
0c4b6dabd3
Increased interglyph spacing to avoid artifacts when mipmapping is enabled.
2016-05-02 16:14:26 +02:00
Maciej Suminski
fff3abc9a0
Support for overbars in bitmap fonts (OpenGL GAL).
2016-05-02 16:12:18 +02:00
Maciej Suminski
c506d2b16c
Set OpenGL context before freeing video resources.
2016-05-02 16:12:18 +02:00
Maciej Suminski
59fe8df269
Split bitmap text drawing routine into smaller functions (GAL).
2016-05-02 16:12:18 +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
b32fdd97d9
Changed shading model to flat.
2016-05-02 16:12:15 +02:00
Maciej Suminski
52c698ab11
Fixed an included header (OpenGL GAL).
2016-05-02 16:12:14 +02:00
Maciej Suminski
e2c8e07344
Enabled mipmapping for bitmap fonts.
2016-05-02 16:12:14 +02:00
Maciej Suminski
53ef29802f
Switched bitmap font to higher resolution.
2016-05-02 16:11:39 +02:00
Maciej Suminski
05a30b7591
Do not draw anything if vertex containers are empty.
2016-05-02 16:08:50 +02:00
Maciej Suminski
928d4e0404
SwapBuffers() contain an implicit glFlush()
2016-05-02 16:08:50 +02:00
Maciej Suminski
bda3011519
Initial support for bitmap fonts (OpenGL GAL).
2016-05-02 16:04:45 +02:00
Maciej Suminski
431e343201
Switch to direct rendering before clearing the screen (OpenGL GAL).
2016-05-02 15:56:19 +02:00
Maciej Suminski
5ba84dda0a
OpenGL capabilities test is run only once.
2016-05-02 15:56:19 +02:00
Maciej Suminski
795fd28742
Set Stroke/Fill settings for stroke font in its Draw() function.
2016-05-02 15:56:17 +02:00
Maciej Suminski
36dd6eb6b3
GAL profiling output is enabled with WXTRACE env variable.
2016-05-02 15:56:17 +02:00
Maciej Suminski
c0465e5519
Instance counter for OPENGL_GAL to avoid double freeing.
2016-05-02 15:56:16 +02:00
Maciej Suminski
dbff9ad786
Improved error checking in GPU_MANAGER.
2016-05-02 15:56:16 +02:00
Maciej Suminski
4cca3bc368
Minor OPENGL_COMPOSITOR refactoring.
2016-05-02 15:56:16 +02:00
Maciej Suminski
1927f3a787
Unified way of checking OpenGL errors.
2016-05-02 15:56:14 +02:00
Maciej Suminski
2a276550eb
Fixed SHADER::AddParameter() function.
2016-05-02 15:56:13 +02:00
Maciej Suminski
b143ce6b0f
Moved text settings from STROKE_FONT to GAL.
2016-05-02 15:56:12 +02:00
Maciej Suminski
da312db7a4
Fixed a wxWidgets assertion. Newer wxWidgets (3.1) display a message saying that horizontal alignment flags are ignored with wxEXPAND.
2016-05-02 15:56:12 +02:00
Maciej Suminski
113e75c5c5
VERTEX_MANAGER functions return false in case of failure.
2016-05-02 15:56:11 +02:00
Maciej Suminski
4262915b38
Code formatting.
2016-05-02 15:56:10 +02:00
Maciej Suminski
0cfa360390
Added VERTEX_MANAGER::Reserve() function.
2016-05-02 15:56:10 +02:00
jean-pierre charras
67982a4851
stroke font: fine adjust of text horizontal position. edat_text: fix an issue in SetOrientation: the rotation angle is now constrained between -360 and +360 degrees.
...
It was previously not the case, and rotated texts outside this interval created issues in dialog_pcb_text_properties which have now validators.
2016-04-19 20:35:47 +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
92ce9c1193
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:26:11 +01:00
jean-pierre charras
bc699c8d8f
Rework on class EDA_TEXT and related classes and draw functions. More work. Eechema: in rotate texts: redraw the full screen to avoid garbage on screen.
2016-03-23 13:16:27 +01:00
jean-pierre charras
30d72045e7
Rework on class EDA_TEXT and related classes and draw functions (Note: this is a work in progress):
...
* remove duplicate code between draw functions and STROKE_FONT used in GAL. Use only STROKE_FONT methods in draw, plot and test DRC function for texts. It remove slightly different shapes between GAL and other calculations.
* fix incorrect bounding box for texts with overbar. Especially noticeable for texts with overbar inside a copper zone in Pcbnew.
* fix a few minor other bugs related to graphic texts.
2016-03-23 08:41:47 +01:00
jean-pierre charras
99e81aeb9c
Fix incorrect (too small) bounding box EDA_TEXT, noticeable when chars like j or { are used in zone fill functions.
...
I tried to merge some constants used both in legacy mode and gal mode (which were, before this patch, separate constants).
There is still a serious work to avoid different calculation code for the same text in draw and plot functions.
Work in progress to merge these calculation functions.
2016-03-11 13:08:34 +01:00
Bernhard Stegmaier
3e2b4244f9
OSX: add support for wxMagnifyEvent on OSX builds using wxWidgets 3.1.0 or greater.
2016-01-24 19:18:29 -05:00
Maciej Suminski
4951285a67
GAL::DrawPolygon() and GAL::DrawPolyline() variants that work with VECTOR2D array.
2016-01-20 15:16:39 +01:00
Maciej Suminski
9b4d12653e
FIxed the drawing layer for arcs (GAL).
2015-12-03 15:05:53 +01:00
unknown
c1b46e6ed8
Fix bug Bug #1519590 (gal cannot start on surface book)
2015-11-29 07:50:25 +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
jean-pierre charras
a23cbe052d
Opengl canvas: avoid hanging when the CACHED_CONTAINER is "out of memory" (which can happen which very large boards) and the vertex manager cannot allocate an other vertex: the message "Vertex allocation error" is now shown only once.
...
the opengl canvas cannot show the full board, but at least the user can save the board, or switch to the legacy canvas.
2015-11-04 13:27:42 +01:00
Maciej Suminski
247f018075
FIxed rendering artifacts in OpenGL canvas.
2015-09-09 10:49:25 +02:00
Maciej Suminski
0386a4df94
Bulletproof canvas switching.
2015-08-21 10:33:36 +02: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
unknown
40ccc0bedf
replace round() with KiROUND(), our function that is used almost everywhere for rounding, and detects int overflows in debug mode.
2015-07-17 10:26:48 +02:00
jean-pierre charras
1c9115ee91
opengl_gal: fix a strange but already encountered issue on Ubuntu/Unity when switching to GAL: the dialog which test the opengl version was never raised, and the Pcb editor frame partially no more responding to menu events.
...
Also fix a bug: this test dialog was never destroyed.
2015-07-13 10:46:05 +02:00
Maciej Suminski
51c0ae3480
Fixed cursor offset in GAL.
2015-07-01 03:46:42 +02:00
Maciej Suminski
785638a396
more fix for Cairo setting screen size.
2015-06-30 15:06:30 +02:00
Maciej Suminski
d3c7b45438
Corrected GAL canvases screen size, so they do not include scroll bars.
2015-06-30 14:08:35 +02:00
Maciej Suminski
28a270a328
Refactored grid origin point drawing (GAL).
2015-06-18 17:51:53 +02:00
Garth Corral
6eaf029a0e
Pinch to zoom for OS X.
2015-05-21 22:54:29 +02:00
Maciej Suminski
48a74dba37
Added missing 'def'
2015-05-21 00:47:53 +02:00
Maciej Suminski
420c1d1bcd
Changed the patch to support full resolution on Retina screens to be more bulletproof.
2015-05-21 00:42:46 +02:00
Maciej Suminski
6fc59f9acd
Full resolution in OpenGL canvas on Retina displays
2015-05-18 13:48:12 +02:00
Maciej Suminski
709697ea40
Better way to determine supported OpenGL version and extensions.
2015-04-20 14:16:41 +02:00
Maciej Suminski
7480bcf1ae
Yet another desperate trial to fix the depth buffer issues.
2015-04-17 12:15:25 +02:00
Maciej Suminski
4dae107dab
Alternative depth range in OpenGL GAL.
2015-03-30 22:14:37 +02:00
Maciej Suminski
9e8719d3ff
Fixed overlapping segment endings in OpenGL view.
2015-03-30 14:09:56 +02:00
jean-pierre charras
bb50e141f4
Pcbnew: Force visibility of items which have no option in dialogs to controle this visibility, when reading the .kicad_brd file.
...
these options are used in GAL mode, but the usercannot control this visibility. So if the board file does not have these visibility flags set, the GAL never show them.
Fix also a compil warning.
2015-03-26 14:20:11 +01:00
jean-pierre charras
6e8a8a6b25
Fix some coverity warnings (mainly not initialized members)
2015-03-21 10:06:04 +01:00
Chris Pavlina
1d2e2e555b
Final solution for the text overbar problem in GAL.
2015-03-16 18:18:18 +01:00
Chris Pavlina
e6db185f2e
Adjusted text overbar height in GAL.
2015-03-16 16:42:45 +01:00
jean-pierre charras
9004ed8801
Remove a few coverity warnings. Fix some comments which were incorrect, due to the changes in code. Remove not compiled code (kept as comments), now outdated or useless
...
legacy plugin: better compatibility with old brd files (current track width and current vias size, stored in SETUP section, were not read from file and incorrectly set)
2015-03-13 17:48:42 +01:00
Maciej Suminski
b6c5b291a2
Coverity fixes.
2015-03-11 14:17:43 +01:00
Maciej Suminski
e6a10faab7
FIxed a few clang warnings.
2015-03-09 11:06:54 +01:00
Eldar Khayrullin
5d8f7ba0e6
bugfix: cannot draw 180 degree arc in OpenGL canvas
2015-03-09 10:26:29 +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
Mark Roszko
3918d3f0b2
Eeschema code cleanup and coverity fixes.
2015-02-21 09:11:58 +01:00
jean-pierre charras
39497b109e
Pcbnew: fix Bug #1422093 (pcbnew crashes after editing a footprint cominng from the board with the fp editor and saving it on a librray and trying to load it to the board)
...
Some other very minor fixes.
2015-02-17 17:32:47 +01:00
Maciej Suminski
b1ace1607b
Reworked GAL switching.
...
Now OpenGL can report its problems instead of shutting down the application.
2015-02-15 02:18:35 +01:00
jean-pierre charras
d4e04dcc97
Fix bugs detected by Cppcheck.
2015-01-19 20:03:50 +01:00
Tomasz Wlostowski
7721d02afe
gal/stroke_font: made text vertical alignment follow the non-GAL renderer.
2014-11-14 19:19:08 +01:00
Maciej Suminski
90c7c72d81
Reverted missing changes.
2014-11-13 16:37:15 +01:00
Maciej Suminski
7de3aa9af2
Reverted the last commit, apparently not every GLEW contains required definitions.
2014-11-13 16:30:30 +01:00
Maciej Suminski
1f8b77697f
gal: Check maximum framebuffer size (OpenGL).
2014-11-13 16:17:53 +01:00
Paulo Henrique Silva
3132690c0b
Fix slow opengl canvas on Mac OS 10.9.
2014-09-13 19:31:40 +02:00
Maciej Suminski
490a73b62a
Fixed filled arcs drawing (GAL).
2014-08-06 13:51:46 +02:00
Maciej Suminski
1d378cfcd1
View is automatically centered when a module editor or viewer are opened (GAL).
2014-07-23 12:06:24 +02:00
jean-pierre charras
4fc4ea6147
Make some system error messages not translatable. Better comments in some dialogs.
2014-07-23 12:48:30 +02:00
Maciej Suminski
a57f7ae8cd
Fix OpenGL canvas freeze under Windows.
2014-07-20 21:14:42 +02:00
Maciej Suminski
14cfd173e6
Fixed the Module viewer crash when there is no footprint loaded.
2014-07-09 16:57:01 +02:00
Maciej Suminski
65c116621d
Added support for changing the cursor size.
2014-07-09 15:10:32 +02:00
Maciej Suminski
b076f3fe4e
Fixed grid drawing when the grid origin has negative coordinates.
2014-07-09 15:02:56 +02:00
Maciej Suminski
7645ed8601
Grid offset is recomputed only when settings are changed.
2014-07-09 11:22:43 +02:00
Maciej Suminski
0fc93666c6
Rework to support multiple views with OpenGL GAL canvas.
2014-07-09 11:22:42 +02:00
Maciej Suminski
0304598a71
Fixed vertical alignment for strings that contain a newline character at the end (GAL).
2014-07-07 13:09:44 +02:00
Bernhard Stegmaier
60a86853ec
Removed a few warnings.
2014-06-05 12:40:26 +02:00
Maciej Suminski
35e343597b
Grid in GAL takes into account grid offset.
2014-06-04 17:56:44 +02:00
jean-pierre charras
e140f79aba
Fix some compil warnings and Debug assertions.
2014-06-04 20:48:49 +02:00
jean-pierre charras
f76041e956
Fix some compil warnings and Debug assertions
2014-06-04 19:34:23 +02:00
Maciej Suminski
d27ea7895d
Moved background color settings from GAL to RENDER_SETTINGS. Added RENDER_SETTINGS::TranslateColor() to convert between EDA_COLOR_T and COLOR4D.
2014-05-14 10:35:12 +02:00
Maciej Suminski
23392ce8c9
Upstream merge.
2014-04-02 15:38:59 +02:00
Maciej Suminski
dbc4a8f292
GAL zooms in and out using the default hot keys (F1/F2).
...
Screen size is saved in VECTOR2I instead of VECTOR2D.
2014-03-20 08:47:31 +01:00
maciej.
898ed7445f
GAL: fix zooming using mouse wheel with wxWidgets 3.0.
2014-03-19 21:07:49 +01:00
Maciej Suminski
e1ce30d89d
Fixed mouse wheel handling for GAL canvases with wx3.0.
2014-03-19 11:57:59 +01:00
Orson
59a0ced0a6
Corrected the error message about required OpenGL version for GAL. Fixed pcb_calculator .desktop file.
2014-03-14 21:32:25 +01:00
Maciej Suminski
c5a3c1082a
Removed a few RecacheAllItems() calls, some of them changed to specific type recaching (using TYPE_COLLECTOR & VIEW_ITEM::ViewUpdate() ).
...
Removed OPENGL_GAL::SetStrokeColor().
2014-02-25 14:28:09 +01:00
Maciej Suminski
1c253bfba0
Some variables initialized to NULL.
2014-02-24 11:17:49 +01:00
Maciej Suminski
3ecae4fa52
GAL::GetGridPoint() returns point in world coordinates.
2014-02-14 14:16:08 +01:00
Maciej Suminski
597e98dbf4
Cursor is in world coordinates.
2014-02-13 20:23:28 +01:00
Maciej Suminski
f9f0b46b63
Small GAL refactorization, mostly correcting constness.
2014-02-13 19:31:27 +01:00
Maciej Suminski
e43b5f7c0f
Small fix for crippled polylines containing 0 points.
2014-02-11 15:01:49 +01:00
Maciej Suminski
5c9e7d9b9b
Merged the lp:~cern-kicad/kicad/selection_tool branch.
2014-02-06 12:48:18 +01:00
Maciej Suminski
b9df36eca5
GAL::GetGridPoint() takes a const reference.
2014-02-06 12:38:06 +01:00
Maciej Suminski
537d82fb98
Upstream merge.
2014-01-06 10:29:31 +01:00
Dick Hollenbeck
c264823731
8 bit string relief via class UTF8
2014-01-01 20:17:07 -06:00
Maciej Suminski
84c496e138
Upstream merge
2013-12-19 11:15:27 +01:00
Maciej Suminski
4a0407fb69
Removed some debug logs.
2013-12-18 12:46:18 +01:00
Maciej Suminski
60e3b01ace
Fixed drawing of rotated texts that are not horizontally center aligned.
2013-12-16 10:36:33 +01:00
Dick Hollenbeck
5df7288678
complete class UTF8.cpp
2013-12-08 00:48:25 -06:00
Dick Hollenbeck
7d58d82656
common/gal/stroke_font.cpp was segfaulting in wx 2.8 when drawing multi-line string.
2013-12-07 22:47:37 -06:00
Dick Hollenbeck
a2f6faf161
Switch STROKE_FONT::Draw() to take "const wxString&" rather than "wxString" by value.
2013-12-05 12:59:27 -06:00
Maciej Suminski
dffacc18ec
DIfferent handling of italic texts, depending on the mirroring setting.
2013-12-05 17:00:29 +01:00
Maciej Suminski
24550f3f38
Tilda handling for STROKE_FONT class.
2013-12-05 16:58:32 +01:00
Maciej Suminski
6be27ae2ea
Glyphs and their bounding boxes are held in vectors instead of deque.
...
Moved scaling of font glyphs to the moment when they are created (eliminated a few multiplications unnecessary variables).
Changed some magic numbers into constants.
2013-12-05 16:29:54 +01:00
Maciej Suminski
ca11855f12
Changed std::wstring to wxString.
2013-12-05 16:00:24 +01:00
Maciej Suminski
7d788109fe
Merged upstream
2013-12-03 16:43:53 +01:00
Maciej Suminski
7678983e38
Fixed non ASCII characters drawing using GAL.
2013-12-03 11:00:52 +01:00
Maciej Suminski
c21ae6efca
Double click support for the Tool Framework.
2013-11-28 15:19:50 +01:00
Maciej Suminski
06f4662ea0
Profile counter simplified, so it should be more portable.
2013-11-27 09:46:59 +01:00
Maciej Suminski
fc4f9195b6
Fixed wx2.8 strings compatibility.
2013-11-13 15:52:06 +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
bae5780dc3
Fixes missing worksheet layout when there is no PCB loaded and all random brightness changes for the Cairo rendering backend.
2013-11-05 15:22:49 -05:00
Wayne Stambaugh
fe54ceacab
Fix debug builds on wxWidgets 2.8.
2013-11-03 13:15:46 -05:00
jean-pierre charras
b8d81d263c
Pcbnew: fix a crash when a non ascii char (i.e. a char having a code > 127) is found in a text (see Bug #1246340 ).
...
Could be only a temporary fix (tested only with French non ascii chars).
2013-10-30 21:07:52 +01:00
Maciej Suminski
edc43c19cd
Fix colorized framebuffer output on some GPUs.
2013-10-29 17:53:47 +01:00
Maciej Suminski
f615c462a2
Changed the used framebuffer object extension from ARB_framebuffer_object to EXT_framebuffer_object (compatibility reasons).
2013-10-29 17:28:29 +01:00
Maciej Suminski
c7bc1e151c
GAL is not activated by default. Late OpenGL backend initializatization.
2013-10-28 16:51:56 +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
22045b61ea
Converted tabs to spaces. Removed trailing whitespaces.
2013-10-14 13:43:57 +02:00
Maciej Suminski
75bb84704d
Added error messages for OpenGL framebuffer errors. This should eliminate quiet segfaults in case of drivers that cannot handle multiple attachment points for framebuffers.
2013-10-14 11:39:21 +02:00
Maciej Suminski
936e0be090
Uncrustified the push&shove source, fixed some warnings.
2013-09-27 10:00:26 +02:00
Maciej Suminski
c00533a150
Merged kicad-gal
2013-09-20 15:48:27 +02:00
Maciej Suminski
dcb5d8f25c
Merged Tom's branch
2013-09-18 16:59:08 +02:00
tomasz.wlostowski@cern.ch
d8480e4674
gal: make the cursor a bit bigger and hidden by default
2013-09-18 13:13:03 +02:00
Maciej Suminski
9fbf45ebfc
Fixed drawing outlined track segments.
2013-09-16 09:51:53 +02:00
Maciej Suminski
782867f7b3
Caps for lines are drawn only when segments are wider than 1.0
2013-09-13 15:30:45 +02:00
Maciej Suminski
82fe1a4972
Merged Tom's branch
2013-09-12 17:42:28 +02:00
tomasz.wlostowski@cern.ch
c3759d870c
COLOR4D: added Saturate(), FromHSV(), ToHSV() methods.
...
Used in highlighting/routing code.
2013-09-12 11:35:42 +02:00
Maciej Suminski
b04de0cada
Fixed memory leaks in containers.
2013-09-12 09:44:57 +02:00
Maciej Suminski
c5d3376c26
Changed some 'magic numbers' into constants. Added const modifier in appropriate spots.
2013-09-11 11:34:10 +02:00
Maciej Suminski
7d4aed1099
Fixed COLOR4D( EDA_COLOR_T aColor ) and added asserts.
2013-09-11 10:30:39 +02:00
Maciej Suminski
08e797551b
Modified default grid/origin settings.
2013-09-10 14:35:10 +02:00
Maciej Suminski
8a4417ec46
Fixed color for drawing polygons on overlay.
2013-09-09 14:31:13 +02:00
Maciej Suminski
f93d297cb5
Some comments.
2013-09-04 16:25:57 +02:00
Maciej Suminski
55744d1e9a
Fixed Cairo's render target setting.
2013-09-03 17:46:05 +02:00
Maciej Suminski
bd8998d1da
Fixed cursor drawing for OpenGL.
2013-08-28 17:06:07 +02:00
Maciej Suminski
6fe086ab6d
Added cursor snapping.
2013-08-28 16:25:42 +02:00
Maciej Suminski
215f35e237
Added mouse cursor drawing.
...
Added flipping mode.
2013-08-27 18:08:32 +02:00
Maciej Suminski
89a138c09e
Added handling keyboard events for the Tool framework.
2013-08-21 17:37:27 +02:00
Maciej Suminski
43ae1cb98d
Smarter way of the overlay rendering (overlay is always refreshed, while cached&noncached targets only if the viewport or items have changed).
2013-08-19 11:02:38 +02:00
Maciej Suminski
bc69429a56
Added GetTarget() for GALs.
2013-08-06 14:57:48 +02:00
Camille Delbegue
2134e7de04
Remove a Clang warning and add a missing dependency to boost in cmake file.
2013-08-05 17:53:13 +02:00
Maciej Suminski
19b344806d
Fixed the tesselator, so now it works with Windows.
2013-08-02 10:55:40 +02:00
Maciej Suminski
ebc2a4269e
Modified way of handling OpenGL framebuffer errors.
...
Now it is more verbose and the status is checked at the right moment (previously it was fine with Linux, but on Windows it showed errors).
2013-08-02 10:34:23 +02:00
Maciej Suminski
544726e4f3
New display style for grid (dotted).
2013-07-31 10:28:23 +02:00
Maciej Suminski
d34df18f2c
Fixed grid line drawing in OpenGL backend for some drivers.
2013-07-31 09:01:25 +02:00
Maciej Suminski
190ed58568
Code refactoring.
2013-07-30 18:29:54 +02:00
Maciej Suminski
790a1f8563
Made GAL backends settings more consistent. Fixed grid line width in the OpenGL backend.
2013-07-30 17:09:06 +02:00
Maciej Suminski
1ce21605a5
Merge removal of the shaderless OpenGL backend.
2013-07-30 14:05:32 +02:00
Maciej Sumiński
6dda8d4a7e
Fixed smudging in the Cairo backend.
2013-07-30 13:58:03 +02:00
Maciej Suminski
f9d74ccb70
Removed shaderless OpenGL backend.
2013-07-29 16:38:07 +02:00
Maciej Suminski
be012cac94
Added initialization of variable, preventing unconditional jumps. Fixed typos in comments.
2013-07-29 14:12:27 +02:00
Maciej Suminski
c9199ea80a
Fixed high contrast mode in OpenGL. Split display settings loading into more appropriate places.
2013-07-25 18:04:15 +02:00
Maciej Suminski
4076f99332
Added a layer compositor for the Cairo backend.
2013-07-25 14:40:04 +02:00
Maciej Suminski
27113348b9
Fixed blending function for OpenGL compositing. Corrected documentation, removed unnecessary functions.
2013-07-24 15:06:59 +02:00
Maciej Suminski
618a5f0e75
OpenGL multitarget rendering (compositing).
2013-07-23 18:39:07 +02:00
Maciej Suminski
a8f4791395
Changed rendering order of cached & noncached layers.
2013-07-22 13:14:53 +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
Maciej Sumiński
92ccc2018e
Headers containing shader program sources are generated using CMake.
2013-07-17 23:55:59 +02:00
Maciej Suminski
bbc0e8eb74
Refactorization of VBO_CONTAINER.
2013-07-17 18:49:38 +02:00
Maciej Suminski
99e8814028
Fixed wrong memory freeing.
2013-07-17 14:16:37 +02:00
Maciej Suminski
b0c1b97ff3
Fixed stroked circles width issue with OpenGL shaders.
2013-07-17 10:21:29 +02:00
Maciej Suminski
fef47b0b67
Fixed OpenGL tracks transparency & netnames issue.
2013-07-16 15:44:08 +02:00
Maciej Suminski
20c86db71f
1 pixel wide lines using OpenGL shaders.
2013-07-16 08:49:12 +02:00
Maciej Suminski
64122ae057
Stroked lines in Cairo GAL are always drawn at least 1 pixel wide.
2013-07-16 08:48:21 +02:00
Maciej Suminski
58280f749a
Fixed multiline vertical strings drawing bug.
2013-07-09 10:00:23 +02:00
Maciej Suminski
b5aadfc3f9
Fixed segmentation fault when there was no board loaded.
2013-07-05 15:48:45 +02:00
Maciej Suminski
eb041ee2d3
Removed most of deprecated OpenGL calls. Items used to be drawn in immediate mode now are drawn using vertex arrays.
2013-07-05 14:01:33 +02:00
Maciej Suminski
408fb4f159
Removed pointers where they were not necessary.
2013-07-05 09:31:04 +02:00
Maciej Suminski
aff3787b34
Fixed drawing circles and semicircles using display lists.
2013-07-04 16:27:27 +02:00
Maciej Suminski
84392f1723
Moved STROKE_FONT from PAINTER to GAL.
2013-07-04 11:37:43 +02:00
Maciej Suminski
fe6c901a9f
Shaders can handle integer parameters (uniforms).
2013-07-03 13:08:43 +02:00
Maciej Suminski
97f914ccb3
Fixed stroked semicircles Z coordinate in shaderless OpenGL backend.
2013-07-02 18:11:57 +02:00
Maciej Suminski
0f5aa0630a
Fixed stroke semicircles drawing using shaderless OpenGL backend.
2013-07-02 09:27:12 +02:00
Maciej Suminski
6dc79cf193
Headers are regenerated only if shaders' source code was modified.
2013-07-01 15:47:44 +02:00
Maciej Suminski
9e4fe8b410
Faster polylines drawing using OpenGL backend.
...
Fixed drawing of lines' caps.
2013-07-01 15:23:43 +02:00
unknown
4360860bee
Removed different styles of line caps and line joins, leaving only round caps & joins.
...
Fixed drawing stroked semicircles using OpenGL backend.
2013-07-01 14:39:27 +02:00
Maciej Suminski
8a44751b61
Mirrored text display bugfix.
2013-07-01 14:06:38 +02:00
Maciej Suminski
a73216fc95
Changed std::map to boost::unordered_map for storing memory chunks and groups information.
2013-07-01 13:20:48 +02:00
Maciej Sumiński
00847a8aed
Colors are stored as unsigned bytes instead of floats.
2013-06-30 22:45:31 +02:00
Maciej Sumiński
27a6f8afd6
Shaders are built-in instead of being loaded from external files.
2013-06-30 19:31:16 +02:00
Maciej Sumiński
335bf72060
More debug information in case of failure compilation of shaders.
2013-06-30 15:37:46 +02:00
Maciej Sumiński
5eb38ec232
Made shaders compatible with Intel GPUs.
2013-06-30 15:37:35 +02:00
Maciej Suminski
bc8ea55092
VBO_CONTAINER: Changed new[]/delete[] pairs to realloc(), possibly reducing memory fragmentation and the container shrinking time.
2013-06-28 10:47:41 +02:00
Maciej Suminski
3f1da8b2c0
Minor code cleaning.
2013-06-27 17:31:10 +02:00
Maciej Suminski
628c069a39
Faster circles & semicircles drawing for the shaderless OpenGL backend. Removed unnecessary variables and computations.
2013-06-27 16:05:15 +02:00
Maciej Suminski
332a7b4bd9
Groups are stored in map instead of deque, so it allows easier adding & removing.
2013-06-27 11:54:49 +02:00
Maciej Suminski
58de62aacc
High contrast mode with showing the selected layer on the top.
2013-06-26 16:31:52 +02:00
Maciej Suminski
1367d33cd8
Small speed up for the color change function (OpenGL_GAL).
2013-06-26 10:43:58 +02:00
Maciej Suminski
db74de74f5
Added possibility to change cached layer color (for the purpose of high contrast display).
2013-06-25 17:12:54 +02:00
Maciej Suminski
0bac4a1e07
Fixed warning about a not initialized variable.
2013-06-25 16:54:30 +02:00
Maciej Suminski
fbc3d63c24
Draw the origin marker in OpenGL with shaders GAL.
2013-06-24 16:02:18 +02:00
Maciej Suminski
978b548c64
Small improvements to SHADER class.
2013-06-24 15:40:31 +02:00
Maciej Suminski
ef865aab68
Grid settings apply to GAL based rendering.
2013-06-24 14:33:02 +02:00
Maciej Suminski
81c674387e
Added convertsion from wxColour to COLOR4D.
2013-06-24 10:32:08 +02:00
Maciej Suminski
08c54e8acf
Passing COLOR4D parameter using constant reference.
2013-06-24 10:21:34 +02:00
Maciej Suminski
f7d85691c2
Added conversion from EDA_COLOR_T to COLOR4D.
2013-06-24 10:12:36 +02:00
Maciej Suminski
145a3f20de
Changed atan2() to VECTOR2D::Angle()
2013-06-21 09:01:40 +02:00
Maciej Suminski
8552a6e29d
Fixed some minor rendering issues, mostyl for shaderless OpenGL GAL.
2013-06-20 16:37:21 +02:00
Maciej Suminski
fd6ab6003d
Bug fixes:
...
- VBO_CONTAINER::allocate() was returning wrong value in case of error
- framelimiter had wrong formula for computing destined period between frames
- removed _padding field from VBO_VERTEX, as it was not speeding up, but wasting memory
2013-06-20 13:16:12 +02:00
Maciej Suminski
83f5bd60c1
Moved fields containing information about currently used color, shader and transformation for vertices from VBO_ITEM to VBO_CONTAINER (OPENGL_GAL).
2013-06-19 10:50:46 +02:00
Maciej Suminski
4de43d7c5f
Removed unnecessary functions from VBO_VERTEX.
2013-06-18 17:53:12 +02:00
Maciej Suminski
cd517f67db
Added VBO_CONTAINER as a faster storage for vertices (OPENGL_GAL), tuned for exchanging data with GPU.
...
Removed a few unnecessary variables and fields from OPENGL_GAL.
Added function GAL::ClearCache() for freeing memory used by cached items.
Fixed a few memory leaks (tesselator, PAINTER's settings & VIEW_ITEM's groups).
Changed a few functions into inlines.
2013-06-18 16:20:29 +02:00
Maciej Suminski
e7b7e0e687
Removed some debug messages.
2013-06-06 11:54:37 +02:00
Maciej Suminski
8742dae4a4
Removed indices storing from VBO_ITEM as they are always consecutive numbers. Removed storing pointers to VBO_ITEMs that have to be drawn - instead they are memcpied to mapped GPU memory.
...
Some functions of VBO_ITEM became inline.
2013-06-06 11:52:39 +02:00
Maciej Suminski
8e1fe5d766
Changed data structure in VBO_ITEM.
2013-06-05 10:48:30 +02:00
Maciej Suminski
28511cf4fe
Introducing shaders.
...
Shader's parameters are stored in VBO_ITEM. Changed VBO_ITEM data structure. Added UseShader() function for selecting shader for a given VBO_ITEM.
Added one main vertex & fragment shader program to be used for with all kinds of items (type of shader is selected using attributes that are stored in VBO). Currently available shaders are: at-least-1px-width line, filled circle and stroked circle.
Removed unnecessary param (aDepthOffset) from a few functions (OPENGL_GAL::drawSemiCircle(), OPENGL_GAL::drawLineCap()). Removed function OPENGL_GAL::DrawRoundedSegment(). Changed some asserts to debug info or error log.
2013-06-04 15:58:53 +02:00
Maciej Suminski
ad5d10a8ba
Display linking errors in debug mode for shaders. Added SHADER::GetAttribute() function for getting shaders attribute location.
2013-06-03 10:54:24 +02:00
Maciej Suminski
e8acd2919b
Added tesselation of polygons for VBO based rendering (OpenGL GAL).
2013-05-27 09:37:49 +02:00
Maciej Suminski
d45008a847
Different way of rendering groups (with a single DrawElements call) in OpenGL GAL.
2013-05-16 18:43:25 +02:00
Maciej Suminski
7a1718d0f5
Changed functions for adding vertices in VBO mode to make code easier to read and understand.
2013-05-16 14:47:34 +02:00
Maciej Suminski
733e5a55e3
Faster way of caching items for OPENGL GAL.
2013-05-16 10:35:16 +02:00
Maciej Suminski
c9f9c4ddbc
Added functionality for transformation of VBO vertices, extended functions like translate, rotate, scale using glm library. Removed D() macro, as it was not used, but in conflict with glm library. Added VBO_ITEMs for circles, semicircles. Now almost everything is drawn using VBO (besides polygons and grid).
2013-05-15 16:48:10 +02:00
Maciej Suminski
a43dd351df
Assured that there are no excessive initializations
2013-05-15 16:47:01 +02:00
Maciej Suminski
c55e063745
Removed double freeing of some of Cairo paths.
2013-05-14 10:42:56 +02:00
Maciej Suminski
1b1216e53d
Modified SetOffset (VBO_ITEM/OpenGL GAL) function.
2013-05-14 10:41:05 +02:00
Maciej Suminski
a6c8beb73b
Drawing tracks using PushVertices, added some comments, fixed formatting.
2013-05-14 10:38:25 +02:00
Maciej Suminski
32784ea191
Added possibility of adding multiple vertices to VBO_ITEM at once
2013-05-13 11:14:35 +02:00
Maciej Suminski
bce9f685ea
Fixed Cairo issues and some possible memory leaks
2013-05-13 10:55:35 +02:00
Maciej Suminski
e8f33ac903
Fixed memleak, removed excessive recaching, still there is a problem with Cairo caching
2013-05-10 16:05:40 +02:00
Maciej Suminski
e9e4ed4230
Improved recaching (all items when a board is loaded), still needs some fixing (mem leak).
2013-04-30 17:55:24 +02:00
Maciej Suminski
191cb40e79
Introduction of VBO. Now only tracks are rendered in a very simple way.
2013-04-30 15:59:32 +02:00
Maciej Suminski
3ff70deab0
Changed non-shader primitives to GL_TRIANGLES.
2013-04-25 18:30:53 +02:00
Maciej Suminski
790e4c6af7
Fixed tracks drawing using Cairo backend with caching turned on.
2013-04-25 10:26:32 +02:00
Maciej Suminski
b70adc5f99
Fixed color issue for stroked fonts with OpenGL backend and caching turned on.
2013-04-25 10:00:25 +02:00
Maciej Suminski
10dd5023e2
Removed BeginLayer and EndLayer functions. Resolved Cairo layers drawing problem in a different way.
2013-04-24 09:48:34 +02:00
Maciej Suminski
4868af8b62
Changed view control settings to KiCad default (panning, zooming, etc.)
2013-04-23 12:07:14 +02:00
Maciej Suminski
ced0d8add9
Modified shaders' source path.
2013-04-23 09:52:51 +02:00
Maciej Suminski
0a55a2b672
Fixed wheel scroll event on Windows
2013-04-22 11:08:02 +02:00
Maciej Suminski
ad4a72ff11
Cairo now renders layers properly (colors are not saturated after layer composition), but slower.
2013-04-19 18:19:50 +02:00
Maciej Suminski
062fc2d200
Some cleanup.
2013-04-19 18:19:20 +02:00
Maciej Suminski
e4bac0d91a
Fixed resize issue (moved GAL panel into pane).
...
Tidied up event handlers.
2013-04-18 11:20:19 +02:00
Maciej Suminski
fde71bdf33
Removed unnecessary calls to cairo drawing functions.
2013-04-17 12:50:38 +02:00
Maciej Suminski
16a28348b4
Added const(..)& in GAL methods' parameters and change iterators to constant iterators.
2013-04-17 12:48:37 +02:00
Maciej Suminski
520be6f67b
Added GAL::DrawSegment for drawing rounded segments (used for drawing tracks).
2013-04-17 12:38:00 +02:00
Maciej Suminski
6cf04e6820
Fixed drawing arcs in Cairo GAL.
2013-04-17 12:33:11 +02:00
Maciej Suminski
71a1ad6ff5
Fixed drawing polygons using Cairo-based GAL.
2013-04-16 14:55:21 +02:00
Maciej Suminski
bee0d69289
Cleanup
2013-04-16 11:16:27 +02:00
Maciej Suminski
01ebf03110
Inverted Y display axis while using Cairo-based rendering backend.
2013-04-15 17:59:38 +02:00
Maciej Suminski
e1fcd31381
Fixed text display using Cairo.
2013-04-12 16:41:31 +02:00
Maciej Suminski
e3cb0aa36f
Tesselation error fix.
...
Added missing callback function (combine callback).
2013-04-12 10:37:06 +02:00
Wayne Stambaugh
b1144a864f
wxWidgets 2.8.12 build fix
2013-04-12 09:30:18 +02:00
Maciej Suminski
877dd3f79a
Added multiline strings and text overbars rendering using GAL.
2013-04-11 14:21:59 +02:00
Maciej Suminski
ef5693080f
Fixed line style used for displaying texts.
2013-04-09 16:12:17 +02:00
Maciej Suminski
70769d5d46
Fixed drawing of circles in certain circumstances using OpenGL.
2013-04-09 16:12:16 +02:00
Maciej Suminski
52ec277592
Fixed bug of displaying stroked rectangles on wrong layer depth.
2013-04-05 15:10:58 +02:00
Maciej Suminski
e262b32198
Introduction of Graphics Abstraction Layer based rendering for pcbnew.
...
New classes:
- VIEW - represents view that is seen by user, takes care of layer ordering & visibility and how it is displayed (which location, how much zoomed, etc.)
- VIEW_ITEM - Base class for every item that can be displayed on VIEW (the biggest change is that now it may be necessary to override ViewBBox & ViewGetLayers method for derived classes).
- EDA_DRAW_PANEL_GAL - Inherits after EDA_DRAW_PANEL, displays VIEW output, right now it is not editable (in opposite to usual EDA_DRAW_PANEL).
- GAL/OPENGL_GAL/CAIRO_GAL - Base Graphics Abstraction Layer class + two different flavours (Cairo is not fully supported yet), that offers methods to draw primitives using different libraries.
- WX_VIEW_CONTROLS - Controller for VIEW, handles user events, allows zooming, panning, etc.
- PAINTER/PCB_PAINTER - Classes that uses GAL interface to draw items (as you may have already guessed - PCB_PAINTER is a class for drawing PCB specific object, PAINTER is an abstract class). Its methods are invoked by VIEW, when an item has to be drawn. To display a new type of item - you need to implement draw(ITEM_TYPE*) method that draws it using GAL methods.
- STROKE_FONT - Implements stroke font drawing using GAL methods.
Most important changes to Kicad original code:
* EDA_ITEM now inherits from VIEW_ITEM, which is a base class for all drawable objects.
* EDA_DRAW_FRAME contains both usual EDA_DRAW_PANEL and new EDA_DRAW_PANEL_GAL, that can be switched anytime.
* There are some new layers for displaying multilayer pads, vias & pads holes (these are not shown yet on the right sidebar in pcbnew)
* Display order of layers is different than in previous versions (if you are curious - you may check m_galLayerOrder@pcbnew/basepcbframe.cpp). Preserving usual order would result in not very natural display, such as showing silkscreen texts on the bottom.
* Introduced new hotkey (Alt+F12) and new menu option (View->Switch canvas) for switching canvas during runtime.
* Some of classes (mostly derived from BOARD_ITEM) now includes ViewBBox & ViewGetLayers methods.
* Removed tools/class_painter.h, as now it is extended and included in source code.
Build changes:
* GAL-based rendering option is turned on by a new compilation CMake option KICAD_GAL.
* When compiling with CMake option KICAD_GAL=ON, GLEW and Cairo libraries are required.
* GAL-related code is compiled into a static library (common/libgal).
* Build with KICAD_GAL=OFF should not need any new libraries and should come out as a standard version of Kicad
Currently most of items in pcbnew can be displayed using OpenGL (to be done are DIMENSIONS and MARKERS).
More details about GAL can be found in: http://www.ohwr.org/attachments/1884/view-spec.pdf
2013-04-02 08:54:03 +02:00
Maciej Suminski
ad4bf38e7a
Added class COLOR4D that contains color representation with 4 components (RGBA) (for future usage in GAL)
2013-03-28 17:42:15 +01:00