Commit Graph

69 Commits

Author SHA1 Message Date
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