Commit Graph

44 Commits

Author SHA1 Message Date
Bruno de Oliveira Abinader
f3fc87261c [core] Coordinate is now GeometryCoordinate
Also introduced GeometryCoordinates (vector of GeometryCoordinate
items), to better cope with GeometryCollection.
2016-03-01 20:58:54 +00:00
John Firebaugh
9c26f06318 [core] Thread GLObjectStore through to Holder objects
This eliminates the reliance on ThreadContext to provide GLObjectStore, and statically enforces that GL cleanup functions happen only when GLObjectStore::performCleanup is called.

With the elimination of the Map thread, this becomes important because there may be multiple GLObjectStore's per-thread, and Map will need to ensure that the correct context is active when calling GLObjectStore::performCleanup.
2016-02-18 15:15:24 -08:00
Ansis Brammanis
47dc38bf4a [core] less slanted dashed lines near sharp corners
port https://github.com/mapbox/mapbox-gl-js/pull/2043 from -js
2016-02-15 12:55:41 -08:00
Konstantin Käfer
2f06ca74e2 [core] move platform/gl.hpp to gl/gl.hpp 2016-02-08 12:50:00 +01:00
John Firebaugh
e04c5f6506 [core] Replace StyleLayerType with RTTI 2015-12-07 18:22:33 -08:00
Konstantin Käfer
964a1e7b62 [core] rudimentary support for offsetting lines 2015-12-03 11:41:53 -08:00
John Firebaugh
a562567589 [core] Eliminate use of ClassProperties for layout 2015-11-10 11:33:17 -08:00
John Firebaugh
3afc8b4a29 [core] Introduce StyleLayer subclasses 2015-10-22 09:34:40 -07:00
John Firebaugh
df89de5cc5 [core] Rationalize style property classes: <type>{Paint,Layout}Properties 2015-10-22 09:21:30 -07:00
Konstantin Käfer
3d834b5c40 give every bucket its own set of buffers
This allows changing individual buckets without having leftover data
2015-10-02 15:05:19 +02:00
Bruno de Oliveira Abinader
a3ea4acb7c [core] convert remaining types to use OpenGL header defined variants 2015-09-15 13:22:07 +02:00
Bruno de Oliveira Abinader
c33a6bddc6 [core] GL types for buckets, textures, buffers 2015-09-15 13:22:04 +02:00
Bruno de Oliveira Abinader
2156aa35ca [shader] bind() is now a pure virtual
- Shader::bind() now receives a GLbyte*
- BUFFER_OFFSET now uses GLbyte
2015-09-14 11:29:49 +03:00
Bruno de Oliveira Abinader
58b93553c1 Replace size() with empty() whenever possible
Before C++11, std::list's implementation of size was O(n). It should be
all O(1) now, but it is probably still a good idea to use empty() to
emphasize the intend.
2015-07-29 11:03:47 +03:00
Ansis Brammanis
888ae5ebdc improve round line joins for semi-transparent lines
https://github.com/mapbox/mapbox-gl-js/pull/1359

Round line joins used to be drawn by adding a semicircle cap to the end
of each segment. This looked fine for opaque lines not for
semi-transparent lines.

This changes the triangulation so that round line joins don't overlap
with segments. The gap between segments is filled with small triangles
that look like pie slices. The edge of the round linejoin is made up of
many short straight lines that look round at the sizes we draw lines.

Since sharp angles are infrequent, this does not significantly affect
the total number of triangles created.

Joins for angles that are really sharp are still drawn with overlap.
2015-07-08 16:16:51 +02:00
Ansis Brammanis
9d714dcf83 fix line tessellation, fix #1814 2015-07-02 13:18:59 +02:00
Bruno de Oliveira Abinader
ff0e54f35a Cleaned up #defines for BUFFER_OFFSET 2015-06-18 09:48:34 +03:00
hanchao
b8c251592a fix roundabout not closed #1450 2015-06-14 07:56:31 +02:00
Konstantin Käfer
f4707f72e0 Replace mbgl::util::make_unique<> with std::make_unique<> 2015-05-26 17:57:38 +02:00
Dane Springmeyer
768c259495 fix division by zero conditions 2015-05-08 15:19:41 -07:00
Konstantin Käfer
f89f7f1bc2 rename prepare => upload and determine passes per layer instead of per bucket 2015-05-04 17:33:05 +02:00
Konstantin Käfer
97a22b6f5f upload all GL objects before rendering a frame
This moves all texture updates and buffer uploads to the beginning of every frame, before we issue any drawing commands. This means the GPU typically has much more time to upload the data in the background until we actually need it, and doesn't have to pause to store/load the framebuffer.
2015-05-04 17:33:05 +02:00
Konstantin Käfer
28b9b3f9d6 add prepare() function 2015-05-04 17:33:04 +02:00
John Firebaugh
bbcc7c26d9 Merge pull request #1065 from mapbox/1065-separate-ui-from-map-thread
Better separation between UI thread and Map thread
2015-04-30 10:22:06 -04:00
Ansis Brammanis
3e928f41c8 fix line tessellation
-js: 7cf7ef763d
2015-04-28 18:14:34 -07:00
Konstantin Käfer
dae18cc7bc remove some unused includes 2015-04-28 14:32:21 -04:00
Konstantin Käfer
feade7b4e4 const + code style 2015-04-27 11:44:50 +02:00
Ansis Brammanis
f1edce8e21 remove linejoin shader
The previous commit switched to using triangles for drawing round joins.
2015-04-27 11:44:49 +02:00
Ansis Brammanis
af1537ca79 port LineBucket::addLine from -js 2015-04-27 11:44:49 +02:00
John Firebaugh
d8411f26d2 Tile::ID ⇢ TileID
This allows making both Tile and TileID private.
2015-04-06 13:58:56 -07:00
Konstantin Käfer
220ebf61dd replace iterator variable types with auto 2015-04-01 16:42:42 +02:00
John Firebaugh
3d9b441c8b Eliminate some unnecessary pointer indirection
Buckets had a pointer to the associated layout type, when they can just
have a direct member.
2015-03-31 15:23:40 -07:00
John Firebaugh
f2e658d962 Remove unused 2015-03-31 12:08:57 -07:00
John Firebaugh
b7f04ee7c2 Use single geometry format 2015-03-09 18:32:09 -07:00
Justin R. Miller
405137700b parse geometry collections from the pbfs; iterate geometries in buckets 2015-03-09 11:57:33 -07:00
Justin R. Miller
41c3b82d3e refs #928: bookmarking working build of refactor 2015-03-09 11:57:31 -07:00
Konstantin Käfer
0151fe6c01 pass StyleLayer objects as const ref instead of a shared pointer 2015-03-06 13:26:11 +01:00
Konstantin Käfer
c07fa06994 rename StyleBucket* => StyleLayout*
and remove a few unused variables

refs #881
2015-02-17 18:27:51 -08:00
Konstantin Käfer
89c0ff5f39 make StyleBucket mutable
refs #881
2015-02-17 18:27:51 -08:00
Konstantin Käfer
5503aef690 make vaos immovable 2015-02-04 10:49:05 +01:00
Ansis Brammanis
2643a0efc7 start porting dash lines from js
- switches to dash units that are scaled by line width
- adds a lineatlas to store patterns line dashed lines
- adds linesdf shader which renders line fill from the lineatlas

js: 8e83d76af3bd877eb9639c02e296363e2c0186f8
2015-01-14 20:56:18 -05:00
Konstantin Käfer
93d56294cf update error reporting function 2014-12-10 13:21:08 +01:00
Leith Bade
0808485453 Use CHECK_ERROR on every GL call 2014-12-10 21:57:34 +11:00
Konstantin Käfer
abafb52f37 make most headers private 2014-12-04 20:02:50 +01:00