Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

Commit

Permalink
Revert "background grid"
Browse files Browse the repository at this point in the history
This reverts commit 1dd3fdf.
  • Loading branch information
kkaefer committed Jun 3, 2014
1 parent 851f56f commit 7a4a833
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 66 deletions.
1 change: 0 additions & 1 deletion include/llmr/map/source.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ class Source : public std::enable_shared_from_this<Source>, private util::noncop

bool update();
void updateMatrices(const TransformState &transform);
bool viewportTileParsed();
void drawClippingMasks();
size_t getTileCount() const;
void render(const LayerDescription& layer_desc, const BucketDescription &bucket_desc);
Expand Down
13 changes: 0 additions & 13 deletions src/map/source.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,19 +57,6 @@ size_t Source::getTileCount() const {
return tiles.size();
}

bool Source::viewportTileParsed() {
bool parsed = false;

for (auto &pair : tiles) {
Tile::ID id = pair.first;
if (hasTile(id) == TileData::State::parsed) {
parsed = true;
}
}

return parsed;
}

void Source::drawClippingMasks() {
for (std::pair<const Tile::ID, std::unique_ptr<Tile>> &pair : tiles) {
Tile &tile = *pair.second;
Expand Down
62 changes: 10 additions & 52 deletions src/renderer/painter_clipping.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,64 +9,22 @@ using namespace llmr;
void Painter::drawClippingMasks(const Sources &sources) {
gl::group group("clipping masks");

useProgram(plainShader->program);
glDisable(GL_DEPTH_TEST);
depthMask(false);
glDepthRange(1.0f, 1.0f);
glStencilMask(0xFF);

bool ready = false;
const BackgroundProperties &properties = map.getStyle()->computed.background;
Color background = properties.color;
const float opacity = properties.opacity;
background[0] *= opacity;
background[1] *= opacity;
background[2] *= opacity;
background[3] *= opacity;
plainShader->setColor(background);

for (const auto &pair : sources) {
Source &source = *pair.second;
if (source.viewportTileParsed()) {
ready = true;
}
}

if (ready) {
// At least one viewport tile is parsed. Draw the background.
useProgram(plainShader->program);

const BackgroundProperties &properties = map.getStyle()->computed.background;
Color background = properties.color;
const float opacity = properties.opacity;
background[0] *= opacity;
background[1] *= opacity;
background[2] *= opacity;
background[3] *= opacity;
plainShader->setColor(background);

coveringPlainArray.bind(*plainShader, tileStencilBuffer, BUFFER_OFFSET(0));
} else {
// No viewport tiles are parsed. Draw the grid pattern.
const std::shared_ptr<Sprite> &sprite = map.getStyle()->sprite;
if (sprite) {
SpriteAtlas &spriteAtlas = *map.getSpriteAtlas();
Rect<uint16_t> imagePos = spriteAtlas.getImage("matte-256", *sprite);

std::array<float, 2> imageSize = {{
(float)(imagePos.w * 0.5),
(float)(imagePos.h * 0.5)
}
};

useProgram(patternShader->program);
patternShader->setPatternSize(imageSize);
patternShader->setPatternTopLeft({{
float(imagePos.x) / spriteAtlas.getWidth(),
float(imagePos.y) / spriteAtlas.getHeight(),
}});
patternShader->setPatternBottomRight({{
float(imagePos.x + imagePos.w) / spriteAtlas.getWidth(),
float(imagePos.y + imagePos.h) / spriteAtlas.getHeight(),
}});
std::array<float, 4> color = {{ 1, 1, 1, 1 }};
patternShader->setColor(color);
spriteAtlas.bind(true);

coveringPatternArray.bind(*patternShader, tileStencilBuffer, BUFFER_OFFSET(0));
}
}
coveringPlainArray.bind(*plainShader, tileStencilBuffer, BUFFER_OFFSET(0));

for (const auto &pair : sources) {
Source &source = *pair.second;
Expand Down

0 comments on commit 7a4a833

Please sign in to comment.