Maciej Suminski
84c496e138
Upstream merge
2013-12-19 11:15:27 +01:00
Maciej Suminski
0e7db24049
Fixed SetCurrentContext() assert, that was firing on closure of pcbnew, when the OpenGL backend was active.
2013-12-05 14:54:30 +01:00
Maciej Suminski
c21ae6efca
Double click support for the Tool Framework.
2013-11-28 15:19:50 +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
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
3f320e4d68
Some more comments and code formatting.
2013-09-27 16:23:43 +02:00
Maciej Suminski
d1578e4e1a
Fixed cvpcb build.
2013-09-24 16:12:02 +02:00
Maciej Suminski
1624320749
Added protection from redrawing while GAL backend is being switched.
2013-09-24 16:00:21 +02:00
Maciej Suminski
42860b5d02
Changed VIEW::PrepareTargets() to more appropriate name VIEW::ClearTargets(). Added SELECTION layer to always-on-top list.
2013-09-13 11:28:47 +02:00
Maciej Suminski
f9cc914960
Mouse movement events are sent during autopanning, as the cursor position changes in the world coordinates (even if it stays still in the screen coordinates). It allows tools to update their state, as if the mouse was moved.
2013-09-13 10:26:08 +02:00
Maciej Suminski
82fe1a4972
Merged Tom's branch
2013-09-12 17:42:28 +02:00
tomasz.wlostowski@cern.ch
f85bf48a4b
EDA_DRAW_PANEL_GAL: redraw stuff in a single place, with "coalescing"
...
Redraws can be requested way too often than it is required. This commit adds redraw timeout:
- if the view became dirty and there has been no redraw for longer than certain time, it is redrawed immediately
- otherwise, we wait for the next frame
This in general improves smoothness of rendering.
2013-09-12 11:40:16 +02:00
tomasz.wlostowski@cern.ch
b0694e0333
EDA_DRAWPANEL_GAL: set focus on mouse enter to catch all key events
2013-09-09 17:07:03 +02:00
Maciej Suminski
f1b0ffd3d7
Changed focus owner of LayerWidget to EDA_DRAW_PANEL_GAL to make keyboard events work (apparently everything works fine, to be tested more extensively).
...
Removed unnecessary event hook from EDA_DRAW_PANEL_GAL.
2013-09-06 17:53:01 +02:00
Maciej Suminski
fef50dd81e
Changed way of naming VIEW_ITEM update flags to be more explicit.
...
VIEW_ITEMs save the layer numbers they use, it allowed to speed up removal of items.
2013-09-02 11:49:46 +02:00
Maciej Suminski
edea2f9112
Reduced displayed events information.
2013-08-29 12:03:57 +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
3962464190
Fixed linking errors for apps other than pcbnew.
2013-08-26 10:43:22 +02:00
Maciej Suminski
89a138c09e
Added handling keyboard events for the Tool framework.
2013-08-21 17:37:27 +02:00
Maciej Suminski
5adba827a6
Added VIEW_GROUP for grouping items to be displayed on a single layer.
2013-08-20 15:07:38 +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
723424df07
Added some comments.
2013-08-09 15:21:31 +02:00
Maciej Suminski
8ab98ae60b
Removed frame limiter.
2013-08-07 09:37:28 +02:00
tomasz.
8ea0f7ae5b
Merged Orson's changes
2013-08-02 17:28:09 +02:00
tomasz.
69a44d5f13
pcbnew: hooked Tool Framework into the edit panel. Added a sample selection tool (not fully functional).
2013-08-02 16:53:50 +02:00
Maciej Suminski
f9d74ccb70
Removed shaderless OpenGL backend.
2013-07-29 16:38:07 +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 Suminski
9c4e02379a
Added the 'cached' parameter for VIEW_LAYER. The parameter decides if items drawn on the layer should be cached or drawn in immediate mode.
...
Removed m_useGroups from VIEW, as now groups are enabled per layer.
2013-07-04 17:02:20 +02:00
Maciej Suminski
073eb024fe
Reduced frame limit.
2013-07-04 14:21:40 +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 Suminski
ef865aab68
Grid settings apply to GAL based rendering.
2013-06-24 14:33:02 +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
929a849b99
Added a framerate limiter.
...
Now it does not use all the CPU power while panning even on simple boards.
2013-06-20 09:58:18 +02:00
Maciej Suminski
876bf75d89
Added GAL_TYPE_NONE as an indicator of GAL uninitialized state.
2013-06-18 16:19:30 +02:00
Maciej Suminski
04b4f236be
Switching to OpenGL using shaders backend on the fly (changed keyboard shortcuts: different backends are available using Alt+F9..F12).
2013-06-04 16:18:33 +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
7a8e1fc6b4
Different way of measuring render time.
2013-05-16 17:17:35 +02:00
Maciej Suminski
806dd7d8ec
Items are not recached until GAL is changed (earlier it was done on every rendering backend switch).
2013-05-15 09:17:42 +02:00
Maciej Suminski
135149e2d3
Fixed build for eeschema.
2013-05-14 10:46:43 +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
191cb40e79
Introduction of VBO. Now only tracks are rendered in a very simple way.
2013-04-30 15:59:32 +02:00
Maciej Suminski
bb3f3d063f
wxWidgets 2.8 compatibility fix.
2013-04-23 18:20:45 +02:00
Maciej Suminski
ced0d8add9
Modified shaders' source path.
2013-04-23 09:52:51 +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
4eadf2ef47
Removed flickering in Cairo-based rendering backend.
2013-04-16 11:43:13 +02:00
Maciej Suminski
bee0d69289
Cleanup
2013-04-16 11:16:27 +02:00
Maciej Suminski
820e6e5e16
Introduced Cairo-based rendering backend using GAL.
...
Moved switching canvas routines to pcbnew, as they are used only there right now (otherwise libgal would have to be linked to every Kicad application).
2013-04-15 17:57:03 +02:00