#include #include namespace mbgl { static gl::VertexVector tileVertices() { gl::VertexVector result; result.emplace_back(FillProgram::layoutVertex({ 0, 0 })); result.emplace_back(FillProgram::layoutVertex({ util::EXTENT, 0 })); result.emplace_back(FillProgram::layoutVertex({ 0, util::EXTENT })); result.emplace_back(FillProgram::layoutVertex({ util::EXTENT, util::EXTENT })); return result; } static gl::IndexVector quadTriangleIndices() { gl::IndexVector result; result.emplace_back(0, 1, 2); result.emplace_back(1, 2, 3); return result; } static gl::IndexVector tileLineStripIndices() { gl::IndexVector result; result.emplace_back(0); result.emplace_back(1); result.emplace_back(3); result.emplace_back(2); result.emplace_back(0); return result; } static gl::VertexVector rasterVertices() { gl::VertexVector result; result.emplace_back(RasterProgram::layoutVertex({ 0, 0 }, { 0, 0 })); result.emplace_back(RasterProgram::layoutVertex({ util::EXTENT, 0 }, { util::EXTENT, 0 })); result.emplace_back(RasterProgram::layoutVertex({ 0, util::EXTENT }, { 0, util::EXTENT })); result.emplace_back(RasterProgram::layoutVertex({ util::EXTENT, util::EXTENT }, { util::EXTENT, util::EXTENT })); return result; } static gl::VertexVector extrusionTextureVertices() { gl::VertexVector result; result.emplace_back(ExtrusionTextureProgram::layoutVertex({ 0, 0 })); result.emplace_back(ExtrusionTextureProgram::layoutVertex({ 1, 0 })); result.emplace_back(ExtrusionTextureProgram::layoutVertex({ 0, 1 })); result.emplace_back(ExtrusionTextureProgram::layoutVertex({ 1, 1 })); return result; } RenderStaticData::RenderStaticData(gl::Context& context, float pixelRatio, const optional& programCacheDir) : tileVertexBuffer(context.createVertexBuffer(tileVertices())), rasterVertexBuffer(context.createVertexBuffer(rasterVertices())), extrusionTextureVertexBuffer(context.createVertexBuffer(extrusionTextureVertices())), quadTriangleIndexBuffer(context.createIndexBuffer(quadTriangleIndices())), tileBorderIndexBuffer(context.createIndexBuffer(tileLineStripIndices())), programs(context, ProgramParameters { pixelRatio, false, programCacheDir }) #ifndef NDEBUG , overdrawPrograms(context, ProgramParameters { pixelRatio, true, programCacheDir }) #endif { tileTriangleSegments.emplace_back(0, 0, 4, 6); tileBorderSegments.emplace_back(0, 0, 4, 5); rasterSegments.emplace_back(0, 0, 4, 6); extrusionTextureSegments.emplace_back(0, 0, 4, 6); } } // namespace mbgl