John Firebaugh
377d0fb0d2
[core] Introduce SegmentVector
2016-11-15 13:55:08 -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
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
7b772611d5
[core] move pixel blitting to gl::Context
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
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
John Firebaugh
0e57d10d77
[core] Modern C++ bindings for OpenGL
2016-10-28 17:14:01 -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
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
John Firebaugh
21d7ee11e1
[core] Rationalize shader names
...
{layer type}{subtype}Shader
2016-10-06 14:47:58 -07:00
John Firebaugh
f438bb68b0
[core] Adhere to vertices/vertexBuffer naming convention
2016-10-05 10:52:19 -07:00
John Firebaugh
7a3bef091e
[core] Refactor Buffer
2016-10-05 10:52:19 -07:00
Konstantin Käfer
cc78b74098
[core] remove dependence on gl.h types
2016-09-29 10:17:47 -07:00
Konstantin Käfer
44c7e9d05e
[core] merge gl::ObjectStore into gl::Context
2016-09-27 11:03:29 -07:00
Konstantin Käfer
ce42d22984
[core] rename gl::Config to gl::Context
2016-09-27 11:03:29 -07:00
Konstantin Käfer
21386b3146
[core] move GL value accessors to gl::value namespace
2016-09-27 11:03:29 -07:00
Konstantin Käfer
afb93d4d3a
[core] track VAOs and Buffers
2016-09-26 11:14:40 +02:00
Konstantin Käfer
0df60c4651
[core] add ability show visualize the depth buffer to the GLFW and macOS app
2016-08-19 17:41:55 +02:00
Bruno de Oliveira Abinader
3ae506ee13
[core] Use NDEBUG instead of DEBUG
...
CMake defines 'NDEBUG' by default for release build, so we can check if
that's not defined instead of using 'DEBUG' for debug build.
2016-08-05 11:42:22 +02:00
Bruno de Oliveira Abinader
30f5aa72de
[core] Make MapDebugOptions::StencilClip a no-op in Release mode
2016-07-20 12:48:52 +03:00
John Firebaugh
822ec091da
[core] Introduce non-anonymous Shaders class
2016-07-11 18:39:50 -07:00
Konstantin Käfer
69c529e264
[core] move shaders to anon struct and alias them
2016-07-07 15:06:59 +02:00
Bruno de Oliveira Abinader
b3c07b0277
[core] Enforce solid fragColor for debug frame/text
2016-07-02 13:05:21 +03:00
Konstantin Käfer
77e7846756
[core] code style cleanups
...
- puts function definitions in a namespace ... {} rather than using namespace ...;
- remove trailing whitespace
- add trailing newline
- protect SQL statements from being formatted by clang-format
2016-07-01 12:38:33 +02:00
John Firebaugh
a020e535ca
[core] Add a few conveniences to Color
2016-06-15 13:22:00 -07:00
Young Hahn
24b66bc8cd
Color class ( #5361 )
...
* Color class
* Switch to list initialization
2016-06-15 11:38:22 -04:00
John Firebaugh
5c7dfd948f
[core] *Tile ↔ *TileData
...
Tile is now the main base class; RasterTile, VectorTile, etc are its subclasses. GeometryTileData and its subclasses form the piece that's passed to the worker.
2016-06-13 10:59:33 -07:00
John Firebaugh
3ab7c1cca3
[core] Tile ⇢ RenderTile
2016-06-13 10:57:46 -07:00
Bruno de Oliveira Abinader
2038a21cb5
[core] s/GLObjectStore/ObjectStore/
2016-06-01 13:53:39 +03:00
Konstantin Käfer
b4de5f472a
[core] rename TileData::State to DataAvailability and make it private
2016-05-25 21:51:25 +02:00
Bruno de Oliveira Abinader
1769e6fcb4
[core] Move GLFW stencil clip debug to core
...
This makes the stencil clip debug available to all platforms.
Fixes #4669 .
2016-05-24 19:58:24 +03:00
Konstantin Käfer
7332ae0073
[core] retain tiles differently and remove old TileID class
2016-05-10 14:50:56 +02:00
Konstantin Käfer
bdcbceff80
[core] move Tile to use UnwrappedTileID
2016-05-10 14:50:56 +02:00
John Firebaugh
1ee0055710
[core] Eliminate MapData
2016-04-15 09:56:18 -07:00
John Firebaugh
9d18d65eda
[core] Remove MapData dependency from Painter
2016-04-15 09:56:18 -07:00
Konstantin Käfer
e7ac0f6d4c
[core] do not call glStencilFunc when we're not clipping
2016-04-06 14:19:13 -07:00
Ansis Brammanis
e7742f2fe9
[core] get rid of empty buffer warning
...
fix #3148
2016-04-04 22:35:56 -07: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
Bruno de Oliveira Abinader
0386dc7a4e
[gl] Use Shader::getID() whenever possible
2016-02-18 13:27:35 +02:00
John Firebaugh
62bbf2627a
[core] Organize files that were in map folder better
...
Fixes #996
2016-02-11 17:30:35 -08:00
Ansis Brammanis
29d61c0fe7
[node] add debug options to node bindings
...
fix #3579
2016-02-08 14:22:53 -08:00
John Firebaugh
1c21d0fd4c
[core] Use better types for modified / expires / etag
2016-01-21 11:22:11 -08:00
Bruno de Oliveira Abinader
1f0820c8e8
[core] Added MapDebugOptions
...
Map debug options are now cycled up to all debug options enabled, then
back to none.
2015-11-27 17:47:02 +02:00
Bruno de Oliveira Abinader
044e92f5e8
[core] Display modify, expires debug information
2015-11-27 17:47:02 +02:00
Bruno de Oliveira Abinader
5ef5d08867
[core] Reset GL values when needed
2015-11-06 20:05:01 +02:00