John Firebaugh
7ea0457e89
[core] Ensure correct GL context in Map::onLowMemory()
2016-11-09 09:57:20 -08:00
Konstantin Käfer
1afd993184
[core] don't initialize with Duration::min() to avoid arithmetic overflows
...
In FrameHistory::needsAnimation, we are computing "time - previousTime", but since previousTime was
initialized to Duration::min(), we got a integer overflow, which produced invalid values.
2016-11-09 17:55:59 +01:00
Konstantin Käfer
bcdbbbcac2
[core] don't assign clip IDs to tiles that aren't rendered
2016-11-08 18:09:58 +01:00
John Firebaugh
3b38cf48b7
[core] Require point size / line width for DrawMode constructors
2016-11-08 08:09:29 -08:00
John Firebaugh
52be5d480d
[core] Put ignore in util namespace
2016-11-08 08:09:29 -08:00
John Firebaugh
d1e2fe511e
[core] Introduce and use IndexedTuple
2016-11-08 08:09:29 -08:00
John Firebaugh
1db2ffbc1b
[core] Use gl::Program to resolve some rough edges in the GL binding types
...
* Extract `ignore` util to separate header.
* `Segment` now tracks offset and length of indices, rather than primitives. This is more natural.
* Introduce `VertexVector` and `IndexVector` types. These types carry information about the intended draw mode (`Triangles`, `LineStrip`, etc.), and ensure that elements are always appended in a group size appropriate for that draw mode, for both indexed and unindexed rendering.
* `Program`, rather than `Drawable`, is now the unifying object for draw calls. `Program` is the best place to type check the draw call, because it is typed to carry information about the intended primitive, vertex type, attributes, and uniforms.
* Use the debug shaders for debug tile rendering, like gl-js.
* Fix the draw mode for background. It was drawing triangle strips with a triangles array. Surprised this didn’t cause issues. Now it’s type checked.
2016-11-08 08:09:29 -08:00
John Firebaugh
66bdbc3b96
[core] Introduce gl::Program template
2016-11-08 08:09:29 -08:00
John Firebaugh
36210fe4e9
[core] Make attribute binding more similar to uniform binding
2016-11-08 08:09:28 -08:00
John Firebaugh
aa08796767
[core] Separate pathway for notifying workers of new images/glyphs
2016-11-07 10:16:35 -08:00
Konstantin Käfer
1533d28314
[core] move Value class outside of Uniform to enforce explicit construction
2016-11-07 18:51:47 +01:00
Konstantin Käfer
bd3d4bc89a
[core] force explicit initialization of uniform values
...
force users to use the actual names to avoid implicit conversion accidentally targeting the wrong shader
2016-11-07 18:51:47 +01:00
Konstantin Käfer
ed72581e0c
[core] remove Uniforms::value in favor of direct construction
2016-11-07 18:51:47 +01:00
Konstantin Käfer
afd43eea3a
[core] remove gl.hpp from all headers that don't need it
2016-11-04 21:24:05 +01:00
Konstantin Käfer
7b772611d5
[core] move pixel blitting to gl::Context
2016-11-04 21:24:05 +01:00
Konstantin Käfer
29c5c13aa2
[core] move OpenGL debug information printing to core
2016-11-04 21:24:05 +01:00
Konstantin Käfer
c90a559599
[core] move framebuffer reading to gl::Context
2016-11-04 21:24:05 +01:00
Konstantin Käfer
eed16cb1bb
[core] add state tracking to pixel transfer
2016-11-04 21:24:05 +01:00
Konstantin Käfer
008a83b915
[core] add state tracking to pixel store packing alignment
2016-11-04 21:24:05 +01:00
Mike Morris
39e9b30ebc
[core] add more detail to invalid metrics error in createSpriteImage
2016-11-04 14:47:34 -04:00
Bruno de Oliveira Abinader
3f5972cba0
[core] Fix render tile ordering when querying sources
2016-11-04 18:43:08 +02:00
Bruno de Oliveira Abinader
549929cefd
[core] Set bucket segments to initialize empty
2016-11-02 18:12:28 +02:00
Konstantin Käfer
e4e9b3a2f0
[core] convert FrameHistory to use managed texture handling
2016-11-01 18:41:52 +01:00
Konstantin Käfer
ed155460d3
[core] convert LineAtlas to use managed texture handling
2016-11-01 18:41:52 +01:00
Konstantin Käfer
7b50cac49f
[core] convert GlyphAtlas to use managed texture handling
2016-11-01 18:41:52 +01:00
Konstantin Käfer
358701f475
[core] add ability to upload alpha-only textures + images
2016-11-01 18:41:52 +01:00
Konstantin Käfer
9e3839781f
[core] convert SpriteAtlas to use managed texture handling
2016-11-01 18:41:52 +01:00
Bruno de Oliveira Abinader
e2981c890e
Revert "[core] Don't use GL_LINEAR if panning w/o rotation nor pitch"
...
This reverts commit a70bfd8910 .
2016-11-01 17:44:34 +02:00
Konstantin Käfer
bb6e39a1cf
[core] fix depth/stencil visualization
...
The previous code didn't set the packing correctly, which meant that we had a buffer overrun in the debug code.
2016-11-01 10:46:04 +01:00
Konstantin Käfer
f7801e5d82
[core] correctly set the framebuffer size on retina screens
...
Also asserts in Debug mode that the internal state and the OpenGL state are identical
2016-11-01 10:46:04 +01:00
Bruno de Oliveira Abinader
7b3e24d74a
[core] Cleanup TransformState::getIntegerZoom
2016-10-31 16:53:07 +02:00
Bruno de Oliveira Abinader
384f1a1960
[core] Use numeric_limits<>::max() for checking element groups
2016-10-31 16:53:07 +02:00
Bruno de Oliveira Abinader
38f536049a
[core] Moved util::log2 to its own header
...
- Added util::{MIN,MAX}_ZOOM_F to avoid consecutive conversions from
double to float
- Move util::log2 to its own header (part of mbgl/math)
2016-10-31 16:53:07 +02:00
Bruno de Oliveira Abinader
a70bfd8910
[core] Don't use GL_LINEAR if panning w/o rotation nor pitch
2016-10-31 16:53:07 +02:00
Bruno de Oliveira Abinader
f03afdee21
[core] Use overscaledZ for scale in collision box shader
2016-10-31 16:53:07 +02:00
John Firebaugh
39d5cb3250
[core] Use VAOs internally
2016-10-28 17:14:07 -07:00
John Firebaugh
0e57d10d77
[core] Modern C++ bindings for OpenGL
2016-10-28 17:14:01 -07:00
John Firebaugh
a4c82b8a3b
[core] operator bool() must always be explicit
...
Otherwise, it can participate in unexpected conversions. Case in point: GlyphSet::insert was comparing the result of GlyphMetrics::operator bool() where it wanted to use operator==.
2016-10-28 17:10:45 -07:00
John Firebaugh
ee3235708f
[core] Methods don't need to be Painter instance methods
2016-10-28 17:09:51 -07:00
Konstantin Käfer
62b56b799a
[core] change std::array<uint16_t, 2> to mbgl::Size
2016-10-27 18:30:58 -07:00
Konstantin Käfer
ef8017198c
[core] remove tiles for disabled sources
...
When no layer of a source is visible anymore, we are now evicting tiles that are still stored in that source and move them to the cache.
2016-10-27 18:14:53 -07:00
Konstantin Käfer
91272992f3
[core] don't load tiles from sources that aren't used
2016-10-27 16:15:36 -07:00
Konstantin Käfer
a4d259c33f
[core] move gl::Context to Backend and refactor View
2016-10-25 13:52:36 -07:00
Konstantin Käfer
5cc390d694
[core] separate Backend from View for headless rendering
2016-10-25 13:52:36 -07:00
Ivo van Dongen
b14e83ea40
[core] geojson source - cancel any pending request when setting geojson explicitly
2016-10-25 16:11:36 +02:00
Ivo van Dongen
6277dca898
[core] geojson source - clear cache when json content is set
2016-10-25 16:11:36 +02:00
Ivo van Dongen
068e78a2e7
[core] geojson source - reset req on setURL
2016-10-25 12:47:35 +02:00
Bruno de Oliveira Abinader
e55065e62a
[core] Reuse last placement data in CollisionTile::queryRenderedFeatures
...
To obtain precise results, we:
1. Round scale value to obtain same results from symbol shader.
2. Generate a boost geometry polygon to check if it intersects()
against all feature boxes.
3. Check if current scale is within each feature's minimum and maximum
placement scales.
4. De-scale feature boxes when intersecting to account for the
fractional zoom scaling.
2016-10-25 08:12:31 +03:00
Bruno de Oliveira Abinader
fc6344c546
[core] Added util::polygonIntersectsPolygon
2016-10-25 08:12:31 +03:00
Bruno de Oliveira Abinader
679bfbfb32
[core] Simplify CollisionTile::findPlacementScale
...
Improve findPlacementScale semantics by moving the check if the
placement scale result is bigger than minimum scale out of the function
scope.
2016-10-25 08:12:31 +03:00