Commit Graph

2830 Commits

Author SHA1 Message Date
Minh Nguyễn
dbd2235744 [core] Line-break ideographic text by character (#6828)
* [core] Line-break ideographic text by character

Allow a line break to be inserted after any supported Chinese, Japanese, or Yi character in a point-placed label. Balance the lines unless non-ideographic text such as Latin letters are present.

Fixes #1223.

* [core] Moved more character classing into util::i18n

* [core] Detect character properties by Unicode block

* [test] Reenabled ideographic breaking tests
2016-11-14 14:53:21 -08:00
Konstantin Käfer
a7fa97e8a3 [core] don't run symbol placement more often than necessary 2016-11-14 10:35:15 +01:00
Konstantin Käfer
35a66eb2bd [core] don't show OpenGL debug information on startup 2016-11-14 10:25:48 +01:00
Jesse Bounds
edf40bb6d9 [core] Return source and layer ownership (#7014)
When a source or layer is removed transfer ownership back to the
caller so it can (optionally) take it. Preserve the behavior that 
removing a CustomLayer triggers deinitialization.  Deinitialize all 
custom layers when a style is destroyed in case those layers are not 
explicitly removed.
2016-11-11 14:40:04 -08:00
Ivo van Dongen
39b0bc0a40 [core] symbol layer - recalculate style on icon/text size changes 2016-11-11 20:18:16 +01:00
Tobrun
720a0256f5 Default Style Camera on Android (#7019)
* [core] - do not set camera mutated to true when calling Map::getLatLng

* [android] - correctly check if a Map is created without a camera position
2016-11-11 18:13:25 +01:00
John Firebaugh
31047b6cb5 [core] Default camera position to that specified by the style 2016-11-09 17:27:35 -08:00
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