Peter Clifton [Sun, 4 Jan 2015 01:50:18 +0000 (4 01:50 +0000)]
Refactor arc bounding box calculations to separate out thin case
The thin-arc case will be useful for arc-segments within polycurves.
Peter Clifton [Sun, 4 Jan 2015 01:50:18 +0000 (4 01:50 +0000)]
And working again (mostly)
Peter Clifton [Sun, 4 Jan 2015 01:50:17 +0000 (4 01:50 +0000)]
Well on the way to completely messing up the STEP code, just by flipping the Y coord!
Peter Clifton [Sun, 4 Jan 2015 01:50:17 +0000 (4 01:50 +0000)]
Attempt to refactor the STEP emission somewhat
Peter Clifton [Sun, 4 Jan 2015 01:50:17 +0000 (4 01:50 +0000)]
Continue tinkering with 3D games
Peter Clifton [Sun, 4 Jan 2015 01:50:17 +0000 (4 01:50 +0000)]
More play with quad edge data-structures and STEP export
Peter Clifton [Sun, 4 Jan 2015 01:50:17 +0000 (4 01:50 +0000)]
WIP on quad edge play
Peter Clifton [Sun, 4 Jan 2015 01:50:17 +0000 (4 01:50 +0000)]
Play with quad-edge data-structure - using PCB as a framework for GL!
Peter Clifton [Sun, 4 Jan 2015 01:50:17 +0000 (4 01:50 +0000)]
Fix build warnings in gtkhid-gl.c
Peter Clifton [Sun, 4 Jan 2015 01:50:16 +0000 (4 01:50 +0000)]
polygon.c: Add option to include drills holes (from vias / pins) in the board outline
Peter Clifton [Sun, 4 Jan 2015 01:50:16 +0000 (4 01:50 +0000)]
hid/gtk (GL): Add hacky code to render outline of board, and mask cutout geometry
Peter Clifton [Sun, 4 Jan 2015 01:50:16 +0000 (4 01:50 +0000)]
32bit: Fix GL HID zoom out, due to over-shooting Coord data-type
Nasty NASTY hack this, but it gets me working again.
Peter Clifton [Sun, 4 Jan 2015 01:50:16 +0000 (4 01:50 +0000)]
Win32: Disable the SpaceNavigator code
Peter Clifton [Sun, 4 Jan 2015 01:50:16 +0000 (4 01:50 +0000)]
Play with locked object rendering
(HACK HACK HACK HACK HACK)
Did I mention this was a hacky pile of rubbish code.. the main point of
the exercise is to determine whether the usability is better or not.
Peter Clifton [Sun, 4 Jan 2015 01:50:16 +0000 (4 01:50 +0000)]
More rubberbanding algorithm tweaks
Peter Clifton [Sun, 4 Jan 2015 01:50:16 +0000 (4 01:50 +0000)]
First attempts at improved rubberbanding logic
Peter Clifton [Sun, 4 Jan 2015 01:50:15 +0000 (4 01:50 +0000)]
Introduce hacky code to switch cursor when over a line we might drag
Peter Clifton [Sun, 4 Jan 2015 01:50:15 +0000 (4 01:50 +0000)]
Tidy up rubberband.c
Peter Clifton [Sun, 4 Jan 2015 01:50:15 +0000 (4 01:50 +0000)]
drc: HACK HACK HACK
Peter Clifton [Sun, 4 Jan 2015 01:50:15 +0000 (4 01:50 +0000)]
Remove "=" shortcut to the djopt() thingy which keeps eating my design
ARR!! how much work have I lost to this key binding!
Peter Clifton [Sun, 4 Jan 2015 01:50:15 +0000 (4 01:50 +0000)]
Change scroll-wheel bindings to match more GTK applications
Peter Clifton [Sun, 4 Jan 2015 01:50:15 +0000 (4 01:50 +0000)]
Add a hacky name-mangling thingy for loading boards
Peter Clifton [Sun, 4 Jan 2015 01:50:15 +0000 (4 01:50 +0000)]
Add strip hierarchy options to display refdes without any "..../" prefix
Peter Clifton [Sun, 4 Jan 2015 01:50:14 +0000 (4 01:50 +0000)]
Refactor poly_CreateNode() to take a pre-created VNODE structure, not a Vector
This helps to keep consitency with other functions adding vertices to a
contour and will be useful when additional data is added to the VNODE
structure. (Meaning it can be set the same way in all cases).
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