Seth Hillbrand
7b3ef1b7ed
colors: Add HSL conversion and tune colors
...
When adding colors to length tuner, we depend on the window background
color, which can be set by the user, resulting in an unreadable text.
This uses the HSL conversion to detect which shade it should use for the
coloring.
Also adds test cases for round-trip HSL and HSV conversion
Fixes: lp:1814530
* https://bugs.launchpad.net/kicad/+bug/1814530
2019-02-11 22:08:41 -08:00
Seth Hillbrand
e8333633fe
GAL: Add antialiasing options to Cairo
...
Cairo supports antialiasing when rendering but can be slow when set to
sub-pixel mode. This bumps the minimum version of Cairo to 1.12
(available in 14.04 LTS as well as mingw) to support three antialias
settings (fast, good, best) that offer speed/appearance tradeoffs.
This can provide a higher-quality eeschema render as it works on a
per-element basis as opposed to the OpenGL per-screen antialias.
2019-01-04 13:39:56 -08:00
jean-pierre charras
83d851956c
classes MARKER rework: remove duplicate code. Better HitTest code (HitTest takes in account the actual shape)
2018-12-19 19:53:27 +01:00
jean-pierre charras
388397f97d
Protect TesselatePolygon() against degenerated polygons (less than 3 corners) to avoid crashes.
...
Use TesselatePolygon() to draw polygons in Gerbview instead of GLU tesselation, much slower.
Add helper methods in GAL to know if the current GAL engine is Cairo, OpenGL or something else,
useful to optimize drawing code.
2018-12-18 12:49:14 +01:00
Maciej Suminski
228ea64016
Fix printout page orientation on GTK3
...
Fixes: lp:1803540
* https://bugs.launchpad.net/kicad/+bug/1803540
2018-11-16 09:52:40 +01:00
John Beard
4c355c32d3
Fix rounding in COLOR4D::ToColour
...
Due to the implicit floor of the cast from double to unsigned char,
there was a small rounding error in COLOUR4D's WX conversion function.
This fixes the failing tests.
Also make the cast to unsigned char explicit.
2018-11-08 14:40:42 -05:00
Maciej Suminski
cbf7d708b2
pcbnew: Draw title block normally even when the view is flipped
2018-10-31 19:17:30 +01:00
Maciej Suminski
64da77538f
Fix bitmap scale in printouts
...
Display GALs had an incorrect world unit value set. Now the world unit
value says how many internal units are in an inch, in accord with the comments
in the GAL header. Bitmap drawing code relied on the information about DPI,
so scaling worked differently for display and print GALs.
2018-10-31 19:17:30 +01:00
Maciej Suminski
347e21daaa
Handle printout settings: line width, color/mono, mirror
2018-10-31 19:17:30 +01:00
Maciej Suminski
47d0eaa2c6
GAL: changed line width setting to float type
2018-10-31 19:17:30 +01:00
Maciej Suminski
6c689305a6
Decouple GAL printing interface and its Cairo-based implementation
2018-10-31 19:17:30 +01:00
Maciej Suminski
e36f6b476d
Changed the CAIRO_GAL class hierarchy
...
There is a dedicated class for display (CAIRO_GAL) and another one
for printing. The common part has been moved to CAIRO_GAL_BASE.
2018-10-31 19:17:30 +01:00
Maciej Suminski
5a64343fb4
CAIRO_PRINT_CTX class
...
CAIRO_PRINT_CTX provides a Cairo context created from wxPrintDC.
It allows one to prepare printouts using the Cairo library and
let wxWidgets handle the rest.
2018-10-31 19:17:29 +01:00
Maciej Suminski
1411e1f73a
GAL: added methods to modify rotation in the transformation matrix
2018-10-31 19:17:29 +01:00
Jeff Young
16925cc74e
Implement RAII locking for GAL updating.
...
Fixes a crash when typing fast in the place footprint filter box.
Also adds a bunch more checking to GAL locking, including making
sure the same person unlocks as locked, and preventing piece-meal
calls (the RAII objects must be used).
2018-10-26 23:02:05 +01:00
Tomasz Włostowski
d66e0d4f7a
eeschema-gal: implemented EnableDepthTest() in GAL, fixed drawing order in eeschema
2018-10-15 00:09:59 +02:00
Jeff Young
6a5744adb1
Show compile errors and go back to GLSL V120.
2018-10-13 12:39:53 +01:00
jean-pierre charras
1bce69b9f0
Fix a minor compil warning.
2018-10-13 08:24:31 +02:00
Jeff Young
6c34fdefd7
Better exception handling and context locking for GAL.
...
This prevents deadlocks when exceptions are thrown and the context
ends up not getting unlocked.
It also removes an earlier hack to try and minimize this which
didn't work anyway.
2018-10-12 23:44:49 +01:00
Tomasz Włostowski
711b278248
gal/opengl: handle single-pixel line width clamping in hardware (new shader). Correct grid rendering in GAL for pixel-sized lines
2018-10-12 19:13:54 +02:00
jean-pierre charras
a6d014d959
Fix some artifacts when drawing items, both on Cairo and Opengl.
...
Fix also incorrect selection of De Morgan style selection in SYMBOL_PREVIEW_WIDGET.
2018-10-09 11:08:56 +01:00
Tomasz Wlostowski
f82f310dd5
eeschema-gal: added EnableDepthTest() feature in GAL
2018-10-09 11:08:52 +01:00
Jeff Young
0309228276
Don't allow drawing to a zero-height or zero-width GAL canvas.
...
Fixes: lp:1793913
* https://bugs.launchpad.net/kicad/+bug/1793913
2018-09-22 22:06:40 +01:00
Tomasz Wlostowski
516cf47946
OPENGL_GAL: optimized JP's bitmap drawing function to use textures
2018-07-30 00:13:37 +02:00
jean-pierre charras
fefc7b8172
GAL canvases: add DrawBitmap(), using a basic brute force algo for OpenGL, and a optimized code for Cairo. In this fix the brute force means draw each pixel as a rectangle. It works fine, but could be optimized.
2018-07-30 00:13:30 +02:00
Maciej Suminski
9ce768c29a
Modified STROKE_FONT::ComputeStringBoundaryLimits() to process multiline strings
...
Removed a declaration of a not existing method (STROKE_FONT::ComputeTextLineSize()).
Fixes: lp:1747967
* https://bugs.launchpad.net/kicad/+bug/1747967
2018-03-08 10:56:34 +01:00
Camille
9ff66a5274
Fix unnecessary value parameter detected by clang-tidy. - Replace value parameter by const reference parameter or move-assignement in some cases
2018-01-09 18:55:51 -05:00
Bernhard Stegmaier
02d1b2611e
Remove wx-3.1 only constructor from HIDPI_GL_CANVAS wrapper.
2017-12-18 16:26:01 +01:00
Bernhard Stegmaier
19d7112fa2
Merge HIDPI_GL_CANVAS wrapper with OPENGL_GAL implementation.
2017-12-18 16:26:01 +01:00
Bernhard Stegmaier
909d95b5be
Create HIDPI_GL_CANVAS wrapper for transparent wxGLCanvas HiDPI/Retina support. Enable HiDPI/Retina for 3d-viewer.
2017-12-18 16:26:01 +01:00
Maciej Suminski
602ecf7502
Fix overbar display in OpenGL canvas
...
Moved the code handling text overbars to a single function
(ProcessOverbars()) to replace similar pieces of code trying to do the
same thing.
Fixes: lp:1735906
* https://bugs.launchpad.net/kicad/+bug/1735906
2017-12-07 17:58:54 +01:00
Tomasz Włostowski
316ddadec1
pcbnew: Optimized zone filling algorithm.
2017-12-05 14:54:57 +01:00
Jon Evans
0564d3456b
Preserve color scheme when switching to legacy (Fixes lp:1670669)
...
Instead of modifying the colors when switching to legacy canvas,
they will now be preserved and only returned as the "legacy" colors.
2017-11-28 10:47:04 +01:00
jean-pierre charras
f7c0562c8b
Gerbview: refinements in D_Code display.
...
Remove duplicate code between legacy and Gal canvas to calculate D_Code id draw parameters.
2017-11-13 11:30:23 +01:00
Tomasz Włostowski
9932ff32ae
refactoring: wrapped boost::optional in OPT<> class for the purpose of easier transition to C++17 in the future
2017-11-03 23:59:02 +01:00
jean-pierre charras
5aeb6129ca
Fix a bug in KIGFX::COLOR4D ctor: . The alpha channel (opacity) was set to 0. this is a mistake. It is now set to 1.0
...
Fixes lp:1718389
2017-09-29 14:52:51 +02:00
Jon Evans
1994cc3ae2
Use unordered_map instead of map for GROUPS_MAP
2017-09-25 13:39:37 +02:00
Jon Evans
0b9b8d3e93
Add support for reversed draw order and Cairo negative draw mode
2017-09-25 13:35:01 +02:00
Maciej Suminski
fa8aaf9d27
Consistent grid options map and GRID_STYLE values
2017-09-14 16:53:21 +02: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
91ed3e2bae
VERTEX_CONTAINER documentation update
2017-08-21 13:30:35 +02:00
Maciej Suminski
b5db6a7d5d
Map/unmap vertices once per layer order update
...
Multiple memory map/unmap operations cause a significant delay on
GPUs that fetch vertices from RAM.
Fixes: lp:1701936
* https://bugs.launchpad.net/kicad/+bug/1701936
2017-08-21 13:28:09 +02:00
Maciej Suminski
c18d148589
Moved VERTEX_CONTAINERs intialization to the constructors
2017-08-08 15:33:57 +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
Maciej Suminski
46b5575c51
OpenGL driver debug routines
2017-08-08 09:31:57 +02:00
Tomasz Włostowski
32185ddcd3
Multiple improvements concerning colors, configuration handling and legacy features in pcbnew:
...
- support for background color setting
- removed several global config settings (such as g_Drc_On)
- wrapped most of global config settings in PCB_GENERAL_SETTINGS class
- reorganized PCB general options dialog to clearly mark which options concern only the legacy canvas
- new GAL feature for legacy users: double-click (or E) to change track width available as an option.
Fixes: lp:1530543
* https://bugs.launchpad.net/kicad/+bug/1530543
Fixes: lp:1707145
* https://bugs.launchpad.net/kicad/+bug/1707145
2017-08-04 16:06:57 +02:00
jean-pierre charras
ed66496242
Fix an issue (created by commit 16cb6a6ca0
) when converting a color4D to a legacy color
...
Fixes: lp:1704724
https://bugs.launchpad.net/kicad/+bug/1704724
2017-07-17 09:59:34 +02:00
jean-pierre charras
16cb6a6ca0
color4d: fix incorrect conversion from rgb to HSV when r = g = b.
2017-07-16 17:10:24 +02:00
jean-pierre charras
22a8df69c4
Fix a few doxygen warnings
2017-06-30 16:03:17 +02:00
jean-pierre charras
70226ecdeb
Fix a few doxygen warnings
2017-06-20 10:47:30 +02:00
John Beard
c3ff34e0df
Add reset text attributes function to GAL - use for arc tool
...
Independent drawing functions (that don't expect any particular state to
be set up fo them) on the GAL need to reset the GAL properties they
use. This adds GAL::ResetTextAttributes() to make this easier.
This is important, as failing to reset mirroring can cause asserts in
OpenGL.
This is used in the Ruler tool (which previously did it one attribute at
a time) and also the Arc layout assistant, which previously failed to
reset mirroring.
Also reset on GAL construction, as these members appear to be
uninitialised.
2017-03-31 15:59:31 +02:00
Jon Evans
8cd1df0524
Add output stream operator for COLOR4D
2017-03-31 06:48:04 -04:00
Maciej Suminski
ddf4f3b2bc
Remove not used cursor fields & methods in Cairo GAL
2017-03-22 10:37:43 +01:00
John Beard
b8edecc10f
Move cursor shape flag into GAL settings
...
The motivation here is to concentrate display options in the GAL display
settings, ready for removal of legacy canvases. Instead of having the
property as a member of the DRAW_FRAME, with the GAL canvas retreiving
it from there, it is now in the GAL_DISPLAY_OPTIONS struct, and both GAL
and legacy get it from there.
The options for setting cursor shape are then moved out of the general
options dialog, and into the GAL display options widget, where they can
be used in all GAL-aware programs.
GAL cursor shape works on GAL, but not legacy, so the option is now
available on OSX (but only affects GAL, and is labelled as such).
2017-03-22 10:24:48 +01:00
John Beard
01c733bdb5
Dim GAL cursor when forced but no interactive tool
...
This makes it clearer when a tool is active, otherwise interactive tool
effects like auto-pan can come as a surprise when the cursor is forced
to display all the time.
2017-03-22 10:24:48 +01:00
John Beard
78a5185857
Allow GAL cursor to be always displayed
...
A new items is added to the GAL display options (and the dialog), and a
hotkey (Ctrl+Shift+x) is added to toggle it.
Fixes: lp:1673633
* https://bugs.launchpad.net/kicad/+bug/1673633
2017-03-22 10:04:56 +01:00
Maciej Suminski
11f8e53e27
Smoother arc rendering in OpenGL GAL
...
Fixes: lp:1496114
* https://bugs.launchpad.net/kicad/+bug/1496114
2017-03-10 14:08:59 +01:00
Jon Evans
3208d24ad4
Add DrawArcSegment() GAL method, to support drawing outlined arcs
2017-03-10 14:08:59 +01:00
Maciej Suminski
62235348d1
Use GAL axes instead of a ORIGIN_VIEWITEM in module editor
2017-03-08 10:35:51 +01:00
Jon Evans
2513f0b002
Add setting to have GAL draw axes on the grid
2017-03-08 09:37:40 +01:00
John Beard
e67882f0a3
Add WithAlpha method to COLOR4D
...
This is useful for taking a "base" color and making derived colours with
the given alpha, but the same RGB value.
2017-03-02 13:58:20 +01:00
jean-pierre charras
1cffcafe2d
GAL mode: Add small cross option to grid style (now: options are Dots, Grid, Small cross)
2017-03-01 10:29:19 +01:00
Maciej Suminski
57050cdeb3
Introduced VIEW_CONTROLS::SETTINGS to keep settings
...
The new class facilitates saving and restoring VIEW_CONTROLS
settings such as cursor visibility, snapping, etc.
2017-02-24 13:33:17 +01:00
Maciej Suminski
0dc88bb4cf
Changed COLOR4D defines to static consts
2017-02-22 17:35:00 +01:00
Jon Evans
a52250a91e
Change from EDA_COLOR_T to COLOR4D globally; arbitrary color support
...
eeschema now supports arbitrary colors for all object types, and
pcbnew does in GAL canvas. When switching from GAL to legacy canvas,
pcbnew will convert colors to the nearest legacy color.
2017-02-22 17:35:00 +01:00
John Beard
8766b475c6
Sanitise incoming GAL config options using mapping tables
...
When reading config options from files, it's important to make sure the
value makes sense - the incoming data could be anything, and may have
incompatible values or be otherwise unreliable.
This introduces a simple way to define and use "mapping tables" which
can map between a "native" value, probably an enum (but not necessarily)
and some external value, for example the value written to file.
This provides a decoupling between the two values, as well as sanitising
inputs and outputs. This is important, as over time, if there isn't a
decoupled interface, changing options result in corrupt configs, or a
proliferation of obsolete enum values kept for compatibility.
2017-02-20 10:52:34 +01:00
John Beard
1f5619f740
Add protected virtual dtor for GAL_DISPLAY_OPTIONS_OBSERVER
...
GAL_DISPLAY_OPTIONS_OBSERVER aren't deleted by a base class pointer -
they are an "incidental" part of other classes. Add a virtual protected
destructor to make this explicit.
2017-02-20 10:52:34 +01:00
John Beard
0bf3a19967
Add user control for grid minimum spacing in GAL
...
This allows the user to set a thicker grid line without causing the
grid lines to become over dense, or just make the grid denser according
to preference.
The term "density" is modified to "minimum grid spacing", which is
the pixel spacing between adjacent grid lines.
The spacing settings now comes in along, with other GAL display settings,
as part of GAL_DISPLAY_OPTIONS observer functionality. To this end, the
setter in GAL interface is removed, as an external user should be
setting this parameter via the GAL_DISPLAY_OPTIONS interface.
2017-02-20 10:52:34 +01:00
John Beard
970e4f8eb4
Add grid line thickness control to Display Options Dialog
...
This adds a user-settable control for the grid line thickness on GAL
canvases to the display options dialog.
The thickness settings now comes in, along with other GAL display
settings, as part of GAL_DISPLAY_OPTIONS observer functionality. To this
end, the setter in GAL interface is removed, as an external user should
be setting this parameter via the GAL_DISPLAY_OPTIONS interface.
Fixes: lp:1662482
* https://bugs.launchpad.net/kicad/+bug/1662482
2017-02-20 10:52:34 +01:00
John Beard
ff3bfaf82b
Make KIGFX::GRID_STYLE an enum class
...
This provides stronger typing to these values.
2017-02-20 10:52:34 +01:00
John Beard
7ad30b7167
Move Grid style to Graphics Options dialog
...
This puts the graphical/display options with the other similar options
in that dialog, rather than with the dimension options found in the Set
Grid dialog, which is in the Dimensions menu.
Also place the option itself in the GAL Display Options structure, so it
can be updated using the observer mechanism there.
The setter for the style in the GAL interface is removed, as the public
interface for setting this option is now to modify the
GAL_DISPLAY_OPTIONS structure and notify the GAL when done.
2017-02-20 10:52:34 +01:00
John Beard
ddded86a06
Give all GAL canvases access to a GAL_DISPLAY_OPTIONS structure instance
...
Also loads the gal options when loading a canvas, as the canvas
otherwise might not register the initial settings.
2017-02-20 10:52:34 +01:00
Maciej Suminski
80956ef1e6
Added GAL::DrawPolygon(SHAPE_POLY_SET) & GAL::DrawPolyLine(SHAPE_LINE_CHAIN)
2017-01-27 19:08:32 +01:00
Maciej Suminski
88eb648cbb
Alternative way of handling OpenGL initialization & errors
...
Some faults could result in a crash, as they were not properly
handled. Now the rendering loop is wrapped with try..catch block
which will revert to Cairo in case of an error and display an
error message.
Fixes: lp:1655766
* https://bugs.launchpad.net/kicad/+bug/1655766
2017-01-13 16:50:36 +01:00
Maciej Suminski
ca085de6aa
Initialize fields in COMPOSITOR
2017-01-13 16:46:45 +01:00
Maciej Suminski
e0577c0218
checkGlError() may throw exceptions or display an error message
2017-01-13 16:46:02 +01:00
Maciej Suminski
5a7604cbb4
More code formatting
2017-01-13 10:36:59 +01:00
Maciej Suminski
67b0a8c990
Fixed type casting in SHADER class
2017-01-11 17:37:10 +01:00
Maciej Suminski
da00d64877
OpenGL antialising code clean up & formatting
2017-01-11 16:20:37 +01:00
decimad
e71070fe1b
final touch-ups (license information, includes)
2017-01-11 16:20:37 +01:00
decimad
77138e3702
Add UI control to set up gal opengl antialiasing and load/store the settings
2017-01-11 16:20:37 +01:00
decimad
2a8dd508c4
Add smaa (subsample morphological antialiasing)
2017-01-11 16:20:37 +01:00
decimad
02bb410cdb
Refactor COMPOSITOR/OPENGL_COMPOSITOR to enable customization of scene rendering and presentation
2017-01-11 16:20:35 +01:00
decimad
77f9cd0cb0
remove custom shader header generation build-step in favor of c++11 raw string literals
...
rework shader loading code to handle an arbitrary amount of to-be-concatenated strings
2017-01-11 16:20:34 +01:00
decimad
047f52e7cb
Move builtin font resources out of opengl_gal translation unit
2017-01-11 16:20:33 +01:00
Maciej Suminski
3ea8f12555
Handle flipped view text rendering for Cairo
2016-12-12 16:45:52 +01:00
Maciej Suminski
a2a950fdae
Reduced the Cairo command entry size
2016-12-12 16:45:52 +01:00
Maciej Suminski
660e4ca9d4
Cairo group arguments are stored in a union.
2016-12-12 16:45:52 +01:00
Maciej Suminski
89055c4425
Code formatting
2016-12-12 16:45:52 +01:00
Tomasz Włostowski
da28e163d2
Optimizations/fixes to the VIEW/GAL classes:
...
- much faster Cairo rendering (outperforms legacy)
- improvements in VIEW update handling
- fixed issue with grid rendering in flip view mode
2016-12-12 16:45:52 +01:00
Tomasz Włostowski
c661c30f68
pcbnew: added flip view mode
2016-12-12 16:45:52 +01:00
jean-pierre charras
30df041de6
fix shadowed local variables
2016-11-25 18:17:34 +01:00
decimad
402f53a302
update font code along with the changes done in the msdf atlas tool (use codepoint spans and refined char placement)
...
add font coordinate system clarification drawing (svg)
2016-10-20 14:31:09 +02:00
Simon Richter
59c81976dc
Explicitly mark overriding functions.
2016-09-24 14:53:15 -04:00
Simon Richter
da5699de0a
Replace boost::shared_ptr with std::shared_ptr.
2016-06-29 11:09:55 -04:00
Maciej Suminski
b7ec4ea160
Corrected the last instance check in OPENGL_GAL.
2016-06-10 17:07:12 +02:00
Simon Richter
5ce4abd0ac
Use size_t for sizes and offsets.
2016-06-10 17:06:00 +02:00
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
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
jean-pierre charras
3e2cae946c
Corrected wxDC objects used by EDA_DRAW_PANEL_GAL & OPENGL_GAL.
2016-06-03 15:46:11 +02:00
Maciej Suminski
3ca7026aa0
More robust checks for OpenGL canvas visibility.
2016-05-20 12:06:08 +02:00
Maciej Suminski
8d952f35c6
Fixed text vertical alignment for bitmap font (OpenGL).
2016-05-03 11:58:48 +02:00
Maciej Suminski
ed0b95d710
Added an option change grid style. Refactored DIALOG_SET_GRID. GAL can draw grid using lines or dots now. DIALOG_SET_GRID was refactored to use Transfer{From,To}Window() methods.
2016-05-02 16:15:24 +02:00
Maciej Suminski
f3fae70fb2
Removed 'inline' keyword from virtual functions.
2016-05-02 16:15:24 +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
fff3abc9a0
Support for overbars in bitmap fonts (OpenGL GAL).
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
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
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
bda3011519
Initial support for bitmap fonts (OpenGL GAL).
2016-05-02 16:04:45 +02:00
Maciej Suminski
82a63a8c2a
Fixed the drawing order for selected items in OpenGL GAL.
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
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
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
0cfa360390
Added VERTEX_MANAGER::Reserve() function.
2016-05-02 15:56:10 +02: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
b59a07128f
Fix a compil issue on Jenkins
2016-03-23 09:27:12 +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
Maciej Suminski
4951285a67
GAL::DrawPolygon() and GAL::DrawPolyline() variants that work with VECTOR2D array.
2016-01-20 15:16:39 +01:00
Tomasz Wlostowski
991b9d509a
GAL: apply grid offset when board is loaded and respect grid color setting. (fixes lp:1533168)
2016-01-13 13:37:52 -05:00
Maciej Suminski
231eaecf34
Removed the included GLM library, switched to the system one.
2015-12-08 10:56:53 +01: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
Simon Richter
27a2098e0a
Add <cstddef> include for offsetof
2015-07-30 14:29:50 +02:00
Maciej Suminski
28a270a328
Refactored grid origin point drawing (GAL).
2015-06-18 17:51:53 +02:00
Maciej Suminski
709697ea40
Better way to determine supported OpenGL version and extensions.
2015-04-20 14:16:41 +02:00
Maciej Suminski
9e8719d3ff
Fixed overlapping segment endings in OpenGL view.
2015-03-30 14:09:56 +02: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
4fb9bce354
Code formatting.
2015-02-18 17:53:46 +01:00
Tomasz Włostowski
83ffb8969f
gal: minor comment fix
2015-02-18 00:45:29 +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
24f516f6ae
Fix many doxygen warnings (due to missing info, old comments, typo ...) when building the doxygen doc.
2014-11-02 17:25:04 +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
a57f7ae8cd
Fix OpenGL canvas freeze under Windows.
2014-07-20 21:14:42 +02:00
Maciej Suminski
65c116621d
Added support for changing the cursor size.
2014-07-09 15:10:32 +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
Maciej Suminski
fb0045a898
Bugfix: Bottom layer not correctly handled in (PNS) Interactive router.
2014-07-07 10:48:47 +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
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
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 Suminski
b6e3b3a3f9
Merged selection_tool branch.
2014-03-06 10:43:40 +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
151826b206
Upstream merge.
2014-02-21 11:05:28 +01:00
unknown
40b30d43d3
GLM (tool for opengl) update to 0.9.4.6
2014-02-17 19:42:52 +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
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
3827f495ca
Ratsnest color is saved in RENDER_SETTINGS. Temporary ratsnest is drawn using a brightened color.
2014-01-31 11:16:01 +01:00
Dick Hollenbeck
c264823731
8 bit string relief via class UTF8
2014-01-01 20:17:07 -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
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
7678983e38
Fixed non ASCII characters drawing using GAL.
2013-12-03 11:00:52 +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
87a9964c78
VIEW_GROUP now does not change depth during drawing. Introduced functions for manipulating stored items.
...
FIxed problem of overlay being covered by other layers while panning.
Few minor fixes.
2013-10-01 16:55:33 +02:00
Maciej Suminski
c00533a150
Merged kicad-gal
2013-09-20 15:48:27 +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
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
Maciej Suminski
7d5a456344
Code reformatting.
2013-08-06 10:30:09 +02:00
Maciej Suminski
f193e389ec
Moved highlighted flag from VIEW_ITEM to EDA_ITEM. Added brightened and selected flag to EDA_ITEM.
2013-08-06 09:31:08 +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
544726e4f3
New display style for grid (dotted).
2013-07-31 10:28:23 +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
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