Peter Clifton [Sun, 4 Jan 2015 01:50:18 +0000 (4 01:50 +0000)]
Fix to ParseGroupString()
Peter Clifton [Sat, 3 Jan 2015 23:51:35 +0000 (3 23:51 +0000)]
Revert "Just make a black background."
This reverts commit
cf6c95ade3be149a5a8659bd13a80eedc4092fd2.
Peter Clifton [Sat, 3 Jan 2015 23:51:34 +0000 (3 23:51 +0000)]
Disable texturing the board's soldermask
Peter Clifton [Sat, 3 Jan 2015 23:51:34 +0000 (3 23:51 +0000)]
Add a load more hacky models for test rendering
Peter Clifton [Sat, 3 Jan 2015 23:51:34 +0000 (3 23:51 +0000)]
Add a demonstration model for rendering ACY series resistors
Play with some lighting effects (SLOW!!!)
Play with shaders and lighting goodness
Oops, nasty hack due to unknown code changes on merge. Left merge comments commented out for now.
Peter Clifton [Sat, 3 Jan 2015 23:51:34 +0000 (3 23:51 +0000)]
Just make a black background.
Peter Clifton [Sat, 3 Jan 2015 23:51:34 +0000 (3 23:51 +0000)]
Re-write ghid_set_layer() for some reason (can't recall why!)
Peter Clifton [Sat, 3 Jan 2015 23:51:34 +0000 (3 23:51 +0000)]
Win32: Fix build for win32
Peter Clifton [Sat, 3 Jan 2015 23:51:33 +0000 (3 23:51 +0000)]
hidgl: Attempt at fixing ORTHO view
Peter Clifton [Sun, 4 Jan 2015 01:44:49 +0000 (4 01:44 +0000)]
Play with perspective
Peter Clifton [Sun, 4 Jan 2015 01:44:49 +0000 (4 01:44 +0000)]
Draw polygons in a more intelligent order
A sub-compositing stencil bit "S" is used to avoid overlapping polygons.
PASS 1a. Draw all non holed "SOLID" polygons which don't clear other
geometry.
PASS 1b. Draw all "SOLID" polygons with holes.
--
In addition to "S", A second stencil bit, "H" is required for
each of these polygons. Both are masked against. After each
polygon drawn, a new "S" stencil bit is required.
PASS 2. Mask out all clearance holes from other geometry.
--
As this is a polygon ONLY layer being subcomposited, this masking
can be done directly on the "S" bit-plane.
PASS 3a. Draw all polygons which only feature clearance holes
PASS 3b. Draw all polygons which have user-defined holes.
--
In addition to "S", a second stencil bit, "H" is required for
each of these polygons. Both are masked against. After each
polygon drawn, a new "S" stencil bit is required.
NB: In this version. PASS 2 and 3 are carried out concurrently, although
for boards with heavily overlapping polygons, it may be faster to
mask out clearance for everything at once.
V2: We have to force a new stencil bit for each piece of a "fullpoly" polygon
as a hole in the first POLYAREA should not prevent a second POLYAREA of the
same polygon being drawn inside that hole. In this regard, we need to treat
"fullpoly" polygons as if they contained user holes.
Peter Clifton [Sun, 4 Jan 2015 01:44:49 +0000 (4 01:44 +0000)]
Try a new, different sized VBO buffer for each upload.
Peter Clifton [Sun, 4 Jan 2015 01:44:49 +0000 (4 01:44 +0000)]
Cache polygon contour tri-strip tesselations (HACK: IN THE CORE!)
This is a bit of a KLUDGE really, we should not push data
into the core like this.
Peter Clifton [Sun, 4 Jan 2015 01:44:49 +0000 (4 01:44 +0000)]
Play with GLSL shader for rendering line caps and circles
And of course.. typically, a million other little fixes:
- Primitive rendering object changed from GL_TRIANGLES to GL_TRIANGLE_STRIP
- Cache of tristrip data per contour (HACK: in the core)
- Rendering using mapped VBOs rather than just arrays
- Updated layer depth code, so we render with "z" in world coordinates
- Space navigator joystick support fixes against later kernels
Bugs:
- Layer depths will be wrong for reversed layer group numbering
- Pixel shader ought to be switched off for polygon fill?
- hidgl_draw_rect stubbed out (for benchmarking)
- Draw Element mark stubbed out (for benchmarking)
- Draw crosshair stubbed out (for benchmarking)
- Draw crosshair not updated to render in world coordinates
Notes:
- Apparently it can be better to do glVertexPointer last (so we do):
From: http://sdickinson.com/wordpress/?p=122
""
Make sure you put glVertexPointer at the end as there is a lot of work that
goes on behind the scenes with it, and if it's set at the start, it has to
do all that work for each gl*Pointer call, rather than once at the end.
""
- We set up the array pointers before calling glEnableClientState():
I'm not sure, but if we do this the other way around, it might cause
the driver to hang onto our old buffers longer, or perform state setup,
only to have to discard that work shortly after.
- DARN: Seems that using VBOs is not a win, even on Intel 965:
Certainly seems to fail miserably (v. low FPS) on my NVidia card.
On Intel, sysprof shows a huge amount of time spent clflushing
buffers, or copying to the graphics card (uncached).
Set to use glBufferSubData by default for now.
Peter Clifton [Sat, 3 Jan 2015 23:51:31 +0000 (3 23:51 +0000)]
hid/gtk (GL): I think the polygon renderer works in mask mode now
Peter Clifton [Sat, 3 Jan 2015 23:51:30 +0000 (3 23:51 +0000)]
Put back layer opacity to its old behaviour
The exact details of this setting aren't right yet,
so revert them so I can build a release.
Peter Clifton [Sat, 3 Jan 2015 23:51:30 +0000 (3 23:51 +0000)]
PCB+GL: Fix GL headers for Win32
Peter Clifton [Sat, 3 Jan 2015 23:51:30 +0000 (3 23:51 +0000)]
hid/common/hidgl: Debug out of context rendering
Peter Clifton [Sat, 3 Jan 2015 23:51:30 +0000 (3 23:51 +0000)]
Hack to avoid GL calls when we're out of context
Peter Clifton [Sat, 3 Jan 2015 23:51:30 +0000 (3 23:51 +0000)]
Add cache for board-outline
This adds a cache of the board outline, to improve rendering speed
when plotting the board with an outline.
The cache is invalidated when the "outline" or "route" layer is
updated. We catch this by bodging the ClearFromPolygon() routine,
which is called for almost all layer geometry changes which might
affect us.
XXX: We really need to add a nicer place to be notified of board
layer changes!
Peter Clifton [Sat, 3 Jan 2015 23:51:29 +0000 (3 23:51 +0000)]
Board outline polygon generation
FIXME: Make this work with the GL masking polygon drawing routines, rather
than relying on the dicer.
Peter Clifton [Sat, 3 Jan 2015 23:51:29 +0000 (3 23:51 +0000)]
Add routines to render just a single contour
Use them rather than the GLU tessellator
Peter Clifton [Sat, 3 Jan 2015 23:51:29 +0000 (3 23:51 +0000)]
borast: Win32: Comment #define in borast-compiler-private.h
Peter Clifton [Sat, 3 Jan 2015 23:51:29 +0000 (3 23:51 +0000)]
Fix borast not to build for non-GL enabled builds
Peter Clifton [Sat, 3 Jan 2015 23:51:29 +0000 (3 23:51 +0000)]
Bentley-Ottann test implementation
Code from cairo - intersection routines stripped out
Peter Clifton [Sat, 3 Jan 2015 23:51:28 +0000 (3 23:51 +0000)]
Silly space navigator interface to allow funky views
Peter Clifton [Sat, 3 Jan 2015 23:51:28 +0000 (3 23:51 +0000)]
Draw pin / pad names first, so they don't get masked by the pad
Since we use stencil masking to ensure we don't redraw an area
multiple times, confusingly, we need to draw the text first to
ensure it isn't occluded by the pad its-self.
HACK:
We probably draw the names multiple times - as we still use the
common draw.c code which assumes it can draw labels on top of
the pads.
Peter Clifton [Sat, 3 Jan 2015 23:51:28 +0000 (3 23:51 +0000)]
gtk/gl: Play with layer translucency
Peter Clifton [Sat, 3 Jan 2015 23:51:28 +0000 (3 23:51 +0000)]
Add support for drawing objects from the soldermask layer
Peter Clifton [Sat, 3 Jan 2015 23:51:28 +0000 (3 23:51 +0000)]
Major re-write to drawing routines
FIXME: FULLY OF NASTY API HACKS TO draw.c
Notes from squashed patches:
Pin and via hole cores are drawn in the appropriate colour
Playing with stack rendering order
Fix mask display in 3D (Allow both side masks to display at once)
Fix rendering depths for silk and mask layers
Fixup depth for layers and element marks
Move more rendering to world coordinates
Fix get_coords function
Re-write parts of the PCB+GL set_layer function
Fix layer on/off rendering after commit
9768e060fad7bc3dfc366da76ea1db8154005018
Only assign stencil planes where sub-compositing is required - that is, not the far-side, mask, rat or switched off layers.
Pass an explicit graphics context to DrawAttached and DrawMark
Peter Clifton [Sat, 3 Jan 2015 23:51:28 +0000 (3 23:51 +0000)]
TMP FIXES
Peter Clifton [Sat, 3 Jan 2015 23:51:28 +0000 (3 23:51 +0000)]
DRAW_FUNCS: Attempt at different render order for PCB+GL
Peter Clifton [Sat, 3 Jan 2015 23:51:27 +0000 (3 23:51 +0000)]
Shiny 3D eye-candy
Experiments in progress - don't expect this to work yet!
Squashed:
Fix grid extents in 3D view
Peter Clifton [Sat, 3 Jan 2015 23:51:27 +0000 (3 23:51 +0000)]
Crasy test
Peter Clifton [Thu, 1 Jan 2015 17:10:54 +0000 (1 17:10 +0000)]
Fixup some bugs from the added soldermask layers
(TODO: Finish this fixup and merge it down into the relevant patches)
Peter Clifton [Thu, 1 Jan 2015 17:10:54 +0000 (1 17:10 +0000)]
draw.c: Opencode the mask layer object drawing functions
Calling DrawLayer() did not render using the correct graphics context / colors.
NB: We're still using the "wrong" GC, but we now avoid selecting inappropriate
colors which prevent (say) PS export working correctly for mask layer objects.
Peter Clifton [Thu, 1 Jan 2015 17:10:54 +0000 (1 17:10 +0000)]
Add support for a two soldermask layers, defining regions of removed mask
File-format wise, these work similarly to how silk layers are supported now:
Layer (1 to n "[NAME]") # "ordinary" design layers
Layer (n+1 "silk") # bottom side silk
Layer (n+2 "silk") # top side silk
Layer (n+3 "bottom soldermask") # bottom side soldermask
Layer (n+4 "top soldermask") # top side soldermask
Peter Clifton [Thu, 1 Jan 2015 17:10:54 +0000 (1 17:10 +0000)]
Avoid hard-coding the number of extra layers in use (for 2x silkscreen)
We will shorty add support for soldermask layers, so this will need changing
NOTE....... IF THE parse_y.y patch in the stg series before this gets
dropped, there is one more case where + 2 needs to be replaced with EXTRA_LAYERS
Peter Clifton [Thu, 1 Jan 2015 17:10:54 +0000 (1 17:10 +0000)]
find.c: The User varaible needs to die...
Reduce its usage to where absolutely necessary... oh, what a surprise,
another variable passing state down into add_object_to_list ()
Peter Clifton [Thu, 1 Jan 2015 17:10:53 +0000 (1 17:10 +0000)]
Add the drc flag as a parameter
Ok, this is nasty.. I'm obscuring setting of the global varaible... be careful!
Peter Clifton [Thu, 1 Jan 2015 17:10:53 +0000 (1 17:10 +0000)]
Add the bloat as a parameter
Ok, this is nasty.. I'm obscuring setting of the global varaible... be careful!
Peter Clifton [Thu, 1 Jan 2015 17:10:53 +0000 (1 17:10 +0000)]
find.c: Refactor some common sequences into a helper function
Peter Clifton [Thu, 1 Jan 2015 17:10:53 +0000 (1 17:10 +0000)]
parse_y.y: Try to avoid two shift/reduce and reduce/reduce warnings
TODO: Check this matches up against our expected behavior.
Removing the parsedata section ("I think") has no effect, as elements
hit the alternative | element clause within parsepcb.
HOWEVER... I need to check whether there is any other valid syntax
inside an element file, or any backwards compatibility with old formats
which we may miss with the loss of parsedata.
Peter Clifton [Thu, 1 Jan 2015 17:10:53 +0000 (1 17:10 +0000)]
Play with grid snapping heuristics a little
Require the pointer to be inside the bounding box of a pin / pad / via before snapping.
This makse it MUCH easier to place vias in a regular grid spaced at the PCB grid spacing.
Peter Clifton [Thu, 1 Jan 2015 17:10:53 +0000 (1 17:10 +0000)]
Add hysteresis to grid-snapping
Peter Clifton [Sat, 3 Jan 2015 23:49:36 +0000 (3 23:49 +0000)]
Update "missing" (automake) script to a later version
Avoids some warnings at configure time noted with automake 1.14
Peter Clifton [Sat, 3 Jan 2015 14:24:53 +0000 (3 14:24 +0000)]
Pass an explicit graphics context to DrawAttached and DrawMark
Peter Clifton [Sat, 3 Jan 2015 12:57:26 +0000 (3 12:57 +0000)]
lesstif: Fix lesstif_use_mask and associated state to use the mask_mode enum
Peter Clifton [Sat, 3 Jan 2015 12:51:46 +0000 (3 12:51 +0000)]
hid/hidint.h: Remove header guard check, it appears not to be required
Peter Clifton [Sat, 3 Jan 2015 12:52:32 +0000 (3 12:52 +0000)]
Update header guard macro check in hidint.h to match rename
The header guard in global.h was renamed in
commit
f6c2d4907583614a10918a121f45670620f1946e
Fixes an implicitly defined function warning in lesstif/main.c
Peter Clifton [Sat, 3 Jan 2015 12:55:58 +0000 (3 12:55 +0000)]
lesstif: Silence two set but unused variable warnings
Peter Clifton [Sat, 3 Jan 2015 12:13:04 +0000 (3 12:13 +0000)]
lesstif: Silence set but unused variable warning
Peter Clifton [Sat, 3 Jan 2015 12:11:39 +0000 (3 12:11 +0000)]
lesstif: Silence set but unused variable warning
Peter Clifton [Sat, 3 Jan 2015 12:08:42 +0000 (3 12:08 +0000)]
lesstif: Silence set but unused variable warning
Peter Clifton [Sat, 3 Jan 2015 11:57:19 +0000 (3 11:57 +0000)]
Fix typo converting request_debug_draw to return a HID_DRAW structure
Fixes GTK HID built without OpenGL
Peter Clifton [Fri, 2 Jan 2015 22:55:48 +0000 (2 22:55 +0000)]
hid.h: Update comment to reflect change in API
Peter Clifton [Thu, 1 Jan 2015 16:35:27 +0000 (1 16:35 +0000)]
Pass a HID_DRAW structure for debug drawing, not HID
Avoids passing the caller access to more functionality than required.
Peter Clifton [Thu, 1 Jan 2015 16:55:07 +0000 (1 16:55 +0000)]
autoroute.c: Add missing include required for debug drawing
Peter Clifton [Thu, 1 Jan 2015 15:57:16 +0000 (1 15:57 +0000)]
Don't use abuse mask drawing of pin/via drawing routines to show DRC clearance during placement
Explicitly call the graphical drawing routines as necessary.
Roland Lutz [Tue, 9 Dec 2014 18:53:13 +0000 (9 19:53 +0100)]
Don't put generated i18n helper files under version control
Reported-by: Sergey Alyoshin <alyoshin.s@gmail.com>
Roland Lutz [Mon, 8 Dec 2014 20:55:06 +0000 (8 21:55 +0100)]
Skip prompt on `make distcheck'
Roland Lutz [Mon, 8 Dec 2014 20:32:28 +0000 (8 21:32 +0100)]
Fix menus not being translated
Eugene Mikhantiev [Wed, 12 Nov 2014 04:33:11 +0000 (12 11:33 +0700)]
PCB make distcheck
Roland Lutz [Wed, 12 Nov 2014 13:42:31 +0000 (12 14:42 +0100)]
List real source files, not generated C files, in po/POTFILES.in
Roland Lutz [Wed, 29 Oct 2014 14:43:10 +0000 (29 15:43 +0100)]
Add support for arbitrary-depth footprint libraries
Tested-by: Kai-Martin Knaak <knaak@iqo.uni-hannover.de>
Roland Lutz [Sun, 21 Sep 2014 12:02:13 +0000 (21 14:02 +0200)]
Don't recurse into relatively-specified library directories
When PCB is run from the user's home directory and "." is specified
as a library directory (which may be a valid use case), PCB tries to
read the user's whole home directory. There is no easy way to tell
if a given relative path should be searched recursively or not, so
don't do it at all.
Roland Lutz [Wed, 10 Sep 2014 19:08:56 +0000 (10 21:08 +0200)]
Remove 509-character limit on configuration values
Tested-by: Kai-Martin Knaak <knaak@iqo.uni-hannover.de>
Roland Lutz [Thu, 11 Sep 2014 11:52:20 +0000 (11 13:52 +0200)]
If there is only one library root node, keep it expanded
Roland Lutz [Thu, 11 Sep 2014 11:17:52 +0000 (11 13:17 +0200)]
Load footprints recursively from subdirectories
Roland Lutz [Thu, 11 Sep 2014 10:57:39 +0000 (11 12:57 +0200)]
Add support for recursive directories to GTK library dialog
Roland Lutz [Thu, 11 Sep 2014 10:39:48 +0000 (11 12:39 +0200)]
Store full library path with menus
Roland Lutz [Wed, 10 Sep 2014 18:55:27 +0000 (10 20:55 +0200)]
Remove 511-character limit on configuration file lines
Tested-by: Kai-Martin Knaak <knaak@iqo.uni-hannover.de>
Roland Lutz [Wed, 10 Sep 2014 18:30:37 +0000 (10 20:30 +0200)]
Remove outdated copy of `mdate-sh'
Roland Lutz [Wed, 10 Sep 2014 18:26:33 +0000 (10 20:26 +0200)]
Add `test-driver' to the list of ignored files
Peter Clifton [Thu, 10 Jul 2014 17:58:15 +0000 (10 18:58 +0100)]
Remove unused #include "setjmp.h" from a few files
Peter Clifton [Sat, 5 Jul 2014 15:36:54 +0000 (5 16:36 +0100)]
Remove function SearchScreenGridSlop() and use SearchObjectByLocation() directly
Peter Clifton [Sat, 5 Jul 2014 16:14:08 +0000 (5 17:14 +0100)]
action.c: Fix handling of the case where a segment already exists when drawing lines
We cancel creating any segment which would overlay an existing, but we previously
failed to move the start-point and toggle the line-start direction so as to
continue drawing from the desired point as if we HAD created the line.
Peter Clifton [Fri, 4 Jul 2014 02:04:39 +0000 (4 03:04 +0100)]
hid/gtk: Remove debugging printf accidentally committed
Peter Clifton [Fri, 4 Jul 2014 02:04:01 +0000 (4 03:04 +0100)]
Peter Clifton [Fri, 4 Jul 2014 00:45:02 +0000 (4 01:45 +0100)]
hid/*: layer_sort() Only copper layers participate in the layer stack
Don't consider the layers greater than or equal to max_copper_layer,
ie.. Silk layers are not in the layer stack. Actually, don't even
worry about checking the layer is a copper layer - it will be.
Use GetLayerGroupNumberByNumber() directly, there is no need to worry
about being passed strange layer numbers.
Rename layer_sort() to layer_stack_sort(), reflecting our (new) preconditions.
Peter Clifton [Thu, 3 Jul 2014 23:27:00 +0000 (4 00:27 +0100)]
Revert "Introduce dynamic board size."
This reverts commit
d91daad65c3ea7e2e1b6ce876b7d41550f6a784e.
The goal is to eventually define the board's extent by the outline
layer, only. That way, all the exporters can export properly
sized layouts.
Undoubtly, this can also influence the GUIs. For example, "zoom to fit"
becomes a slightly different meaning and drawing outside the board's
extent becomes possible. Autorouting and similars can be limited to
the actual board size. Resizing a board to the lower left no longer
requires the error-prone moving of all the stuff and keeps file diffs
small.
The code in question does NOT dynamically update the desired information
when the outline layer changes, and it adds yet more magic meaning to the
"outline" layer which I'm trying slowly to remove from PCB. This is the
wrong way to cope with unlimited board sizes.
Peter Clifton [Thu, 3 Jul 2014 23:31:05 +0000 (4 00:31 +0100)]
hid/gcode: Don't use PCB->Extent{Min,Max}{X,Y}.. they are about to be killed
The extent updating code is broken, and adds yet more special-case code which
handles the "outline" layer. Use PCB->MaxWidth and PCB->MaxHeight, these
represent the size the of board, and are the values which the extents code
defaulted to if it did not find any lines on the "outline" layer.
Peter Clifton [Thu, 3 Jul 2014 23:55:14 +0000 (4 00:55 +0100)]
hid/gtk: Don't use a static local variable for the tooltip id, it is ugly.
Peter Clifton [Thu, 3 Jul 2014 23:12:16 +0000 (4 00:12 +0100)]
hid/gerber: Fix broken eagle-suffix filename assignemnt
This was broken carelessly in commit
c812fbae2dfe74cd3d39dd2dcc5cdbb08e07555a
NB: Please pay attention to compiler warnings... they are there for a reason!
Peter Clifton [Thu, 3 Jul 2014 23:05:11 +0000 (4 00:05 +0100)]
constify name argument to ghid_notebook_page()
Avoids a compiler warning when building the GTK hid.
Peter Clifton [Thu, 3 Jul 2014 22:55:10 +0000 (3 23:55 +0100)]
Remove function GetGroupOfLayer, use GetLayerGroupNumberByNumber() instead.
These functions are virtually identical, the only difference being special-case
handling in the deleted function to force returning max_group if passed layer
number "max_copper_layer".
This actually (as it happens), corresponds to the bottom silk layer, and this
handling is suspect at best. GetLayerGroupNumberByNumber() will return the
group corresponding to the bottom of the board (whichever that may be).
Peter Clifton [Thu, 3 Jul 2014 22:32:42 +0000 (3 23:32 +0100)]
Avoid walking off the layer group string in ParseGroupString
Oops - fix bug introduced in previous commit
Peter Clifton [Sat, 28 Jun 2014 18:43:15 +0000 (28 19:43 +0100)]
Determine layer count in ParseGroupString
This may break support for reading a board without a valid Groups()
construct, although that will only affect ancient PCB files.
Peter Clifton [Sat, 28 Jun 2014 20:28:08 +0000 (28 21:28 +0100)]
parse_y.y: Don't bother setting LayerFlag[1,2] for elements - it isn't used
Peter Clifton [Sat, 28 Jun 2014 20:16:01 +0000 (28 21:16 +0100)]
Move contents of PreLoadElementPCB and PostLoadElementPCB into parse_y.y
These functions are only called from parse_y.y, and access yy prefixed
variables which should be private to the parser/lexer.
Peter Clifton [Sat, 28 Jun 2014 18:47:46 +0000 (28 19:47 +0100)]
Create a new constant MAX_GROUP to size arrays of layer groups.
This is clearer than using MAX_LAYER. (Although the numbers are identical).
Peter Clifton [Thu, 26 Jun 2014 20:21:44 +0000 (26 21:21 +0100)]
Rename "{component,solder}_silk_layer" to "{top,bottom}_silk_layer"
This will avoid confusion when we start adding "soldermask" layers.
The resulting variables solder_soldermask_layer and component_soldermask_layer
are not ideal (repeated use of the word solder), so lets start using "top_" and
"bottom_" to define the board sides. The corresponding new layer names are then
"top_soldermask_layer" and "bottom_soldermask_layer", which is less confusing.
Patch includes various other renaming of component -> top and solder -> bottom.
Peter Clifton [Thu, 26 Jun 2014 22:47:22 +0000 (26 23:47 +0100)]
Use new function GetLayerGroupNumberBySide() to make code clearer
Replaces code calling GetLayerGroupNumberByNumber() against one of the
silk-screen layers in order to find the layer group containing the top
or bottom side of the board.
Patch includes various renaming of component -> top, and solder -> bottom
Peter Clifton [Fri, 27 Jun 2014 00:36:58 +0000 (27 01:36 +0100)]
line.c: Cleanup group checking in drc_lines()
Avoid using an out-of-bounds layer number which might be used in future.
Peter Clifton [Fri, 27 Jun 2014 00:40:34 +0000 (27 01:40 +0100)]
Create new function GetLayerGroupNumberBySide()
Peter Clifton [Thu, 26 Jun 2014 20:12:40 +0000 (26 21:12 +0100)]
Replace {COMPONENT,SOLDER}_LAYER with {TOP,BOTTOM}_{SILK_LAYER,SIDE} depending on usage
We used the {COMPONENT,SOLDER}_LAYER constants for two distinct meanings:
1. To identify board sides, ie. use as an integer constant representing top / bottom
2. As an offset at the end of the layer array to index the two silk-screen layers
Split the usage of these constants as appropriate, so the difference in meaning
is clear. {TOP,BOTTOM}_SIDE are used where we need an integer constant (1 and 0
respectively) refering to the side of the board. This is used, for example, as a
side specifier in draw.c, and for indexing arrays of pads per board-side in find.c.
Usage as an offset into the layer for referencing the silk-screen layers is now
{TOP,BOTTOM}_SILK_LAYER. The relevant offset of PCB->LayerN must still be added.
Peter Clifton [Thu, 26 Jun 2014 22:31:55 +0000 (26 23:31 +0100)]
move.c: Fix incorrect usage of max_group
Numerically correct (at the moment), semantically wrong.
Peter Clifton [Fri, 13 Jun 2014 00:57:53 +0000 (13 01:57 +0100)]
Fix some broken assumptions regarding 32-bit integer coordinates in polygon1.c
Peter Clifton [Thu, 12 Jun 2014 22:51:25 +0000 (12 23:51 +0100)]
polygon.c: Readability cleanup for frac_circle()
Andrew Poelstra [Sun, 8 Jun 2014 18:03:24 +0000 (8 11:03 -0700)]
png: add explicit round() calls to the scaling
After this commit the tests pass on both 32- and 64-bit builds.
Hopefully this time it's really dead; the previous "fix"
af27c2d
by myself merely increased the DPI of the output, but this one
attempts to get deterministic rounding behaviour.
Tests from folks with actual 32-bit machines are welcome.
Closes-bug: lp-860037