#include #include #include #include namespace mbgl { using namespace style; RasterBucket::RasterBucket(gl::TexturePool& texturePool) : raster(texturePool) { } void RasterBucket::upload(gl::ObjectStore& store) { if (hasData()) { raster.upload(store); uploaded = true; } } void RasterBucket::render(Painter& painter, const Layer& layer, const UnwrappedTileID& tileID, const mat4& matrix) { painter.renderRaster(*this, *layer.as(), tileID, matrix); } void RasterBucket::setImage(PremultipliedImage image) { raster.load(std::move(image)); } void RasterBucket::drawRaster(RasterShader& shader, StaticVertexBuffer &vertices, VertexArrayObject &array, gl::ObjectStore& store) { raster.bind(true, store); array.bind(shader, vertices, BUFFER_OFFSET_0, store); MBGL_CHECK_ERROR(glDrawArrays(GL_TRIANGLES, 0, (GLsizei)vertices.index())); } bool RasterBucket::hasData() const { return raster.isLoaded(); } bool RasterBucket::needsClipping() const { return false; } } // namespace mbgl