[core] s/Wireframe/Overdraw/g

This commit is contained in:
Bruno de Oliveira Abinader
2016-06-20 13:18:16 +03:00
parent df5a395708
commit 97dffeb03d
20 changed files with 48 additions and 49 deletions

View File

@@ -43,7 +43,7 @@ enum class MapDebugOptions : EnumType {
ParseStatus = 1 << 2,
Timestamps = 1 << 3,
Collision = 1 << 4,
Wireframe = 1 << 5,
Overdraw = 1 << 5,
// FIXME: https://github.com/mapbox/mapbox-gl-native/issues/5117
#ifndef GL_ES_VERSION_2_0
StencilClip = 1 << 6,

View File

@@ -33,7 +33,7 @@ Mapbox welcomes participation and contributions from everyone. Please read [CON
- Removed unused SVG files from the SDK’s resource bundle. ([#4641](https://github.com/mapbox/mapbox-gl-native/pull/4641))
- Deprecated `-[MGLMapView emptyMemoryCache]`. ([#4725](https://github.com/mapbox/mapbox-gl-native/pull/4725))
- Added `MGLCoordinateInCoordinateBounds()`, a function that tests whether or not a coordinate is in a given bounds. ([#5053](https://github.com/mapbox/mapbox-gl-native/pull/5053))
- Added a new option to `MGLMapDebugMaskOptions`, `MGLMapDebugWireframesMask`, that shows wireframes instead of the usual rendered output. ([#4359](https://github.com/mapbox/mapbox-gl-native/pull/4359))
- Added a new option to `MGLMapDebugMaskOptions`, `MGLMapDebugOverdrawsMask`, that shows wireframes for overdraw inspection instead of the usual rendered output. ([#4359](https://github.com/mapbox/mapbox-gl-native/pull/4359))
## 3.2.3

View File

@@ -181,9 +181,9 @@ static NSString * const MBXViewControllerAnnotationViewReuseIdentifer = @"MBXVie
((debugMask & MGLMapDebugCollisionBoxesMask)
? @"Hide Collision Boxes"
: @"Show Collision Boxes"),
((debugMask & MGLMapDebugWireframesMask)
? @"Hide Wireframes"
: @"Show Wireframes"),
((debugMask & MGLMapDebugOverdrawsMask)
? @"Hide Overdraws"
: @"Show Overdraws"),
@"Add 100 Points",
@"Add 1,000 Points",
@"Add 10,000 Points",
@@ -226,7 +226,7 @@ static NSString * const MBXViewControllerAnnotationViewReuseIdentifer = @"MBXVie
}
else if (buttonIndex == actionSheet.firstOtherButtonIndex + 5)
{
self.mapView.debugMask ^= MGLMapDebugWireframesMask;
self.mapView.debugMask ^= MGLMapDebugOverdrawsMask;
}
else if (buttonIndex == actionSheet.firstOtherButtonIndex + 6)
{

View File

@@ -43,9 +43,8 @@ typedef NS_OPTIONS(NSUInteger, MGLMapDebugMaskOptions) {
/** Edges of glyphs and symbols are shown as faint, green lines to help
diagnose collision and label placement issues. */
MGLMapDebugCollisionBoxesMask = 1 << 4,
/** Line widths, backgrounds, and fill colors are ignored to create a
wireframe effect. */
MGLMapDebugWireframesMask = 1 << 5,
/** Overdraw inspector. */
MGLMapDebugOverdrawsMask = 1 << 5,
};
/**

View File

@@ -1829,9 +1829,9 @@ mbgl::Duration MGLDurationInSeconds(NSTimeInterval duration)
{
mask |= MGLMapDebugCollisionBoxesMask;
}
if (options & mbgl::MapDebugOptions::Wireframe)
if (options & mbgl::MapDebugOptions::Overdraw)
{
mask |= MGLMapDebugWireframesMask;
mask |= MGLMapDebugOverdrawsMask;
}
return mask;
}
@@ -1855,9 +1855,9 @@ mbgl::Duration MGLDurationInSeconds(NSTimeInterval duration)
{
options |= mbgl::MapDebugOptions::Collision;
}
if (debugMask & MGLMapDebugWireframesMask)
if (debugMask & MGLMapDebugOverdrawsMask)
{
options |= mbgl::MapDebugOptions::Wireframe;
options |= mbgl::MapDebugOptions::Overdraw;
}
_mbglMap->setDebug(options);
}

View File

@@ -1,6 +1,7 @@
# Changelog for Mapbox macOS SDK
## master
* Refactor wireframe mode to match GL JS overdraw implementation. ([#5403](https://github.com/mapbox/mapbox-gl-native/pull/5403)).
## 0.2.0

View File

@@ -461,10 +461,10 @@
<action selector="toggleCollisionBoxes:" target="-1" id="EYa-7n-iWZ"/>
</connections>
</menuItem>
<menuItem title="Show Wireframes" id="hSX-Be-8xC">
<menuItem title="Show Overdraws" id="hSX-Be-8xC">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="toggleWireframes:" target="-1" id="usj-ug-upt"/>
<action selector="toggleOverdraws:" target="-1" id="usj-ug-upt"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="2EG-Hp-4FA"/>

View File

@@ -276,8 +276,8 @@ NS_ARRAY_OF(id <MGLAnnotation>) *MBXFlattenedShapes(NS_ARRAY_OF(id <MGLAnnotatio
self.mapView.debugMask ^= MGLMapDebugCollisionBoxesMask;
}
- (IBAction)toggleWireframes:(id)sender {
self.mapView.debugMask ^= MGLMapDebugWireframesMask;
- (IBAction)toggleOverdraws:(id)sender {
self.mapView.debugMask ^= MGLMapDebugOverdrawsMask;
}
- (IBAction)showColorBuffer:(id)sender {
@@ -604,9 +604,9 @@ NS_ARRAY_OF(id <MGLAnnotation>) *MBXFlattenedShapes(NS_ARRAY_OF(id <MGLAnnotatio
menuItem.title = isShown ? @"Hide Collision Boxes" : @"Show Collision Boxes";
return YES;
}
if (menuItem.action == @selector(toggleWireframes:)) {
BOOL isShown = self.mapView.debugMask & MGLMapDebugWireframesMask;
menuItem.title = isShown ? @"Hide Wireframes" : @"Show Wireframes";
if (menuItem.action == @selector(toggleOverdraws:)) {
BOOL isShown = self.mapView.debugMask & MGLMapDebugOverdrawsMask;
menuItem.title = isShown ? @"Hide Overdraws" : @"Show Overdraws";
return YES;
}
if (menuItem.action == @selector(showColorBuffer:)) {

View File

@@ -21,9 +21,8 @@ typedef NS_OPTIONS(NSUInteger, MGLMapDebugMaskOptions) {
diagnose collision and label placement issues. */
MGLMapDebugCollisionBoxesMask = 1 << 4,
/** Line widths, backgrounds, and fill colors are ignored to create a
wireframe effect. */
MGLMapDebugWireframesMask = 1 << 5,
/** Overdraw inspector. */
MGLMapDebugOverdrawsMask = 1 << 5,
/** The stencil buffer is shown instead of the color buffer. */
MGLMapDebugStencilBufferMask = 1 << 6,

View File

@@ -2398,8 +2398,8 @@ public:
if (options & mbgl::MapDebugOptions::Collision) {
mask |= MGLMapDebugCollisionBoxesMask;
}
if (options & mbgl::MapDebugOptions::Wireframe) {
mask |= MGLMapDebugWireframesMask;
if (options & mbgl::MapDebugOptions::Overdraw) {
mask |= MGLMapDebugOverdrawsMask;
}
if (options & mbgl::MapDebugOptions::StencilClip) {
mask |= MGLMapDebugStencilBufferMask;
@@ -2421,8 +2421,8 @@ public:
if (debugMask & MGLMapDebugCollisionBoxesMask) {
options |= mbgl::MapDebugOptions::Collision;
}
if (debugMask & MGLMapDebugWireframesMask) {
options |= mbgl::MapDebugOptions::Wireframe;
if (debugMask & MGLMapDebugOverdrawsMask) {
options |= mbgl::MapDebugOptions::Overdraw;
}
if (debugMask & MGLMapDebugStencilBufferMask) {
options |= mbgl::MapDebugOptions::StencilClip;

View File

@@ -787,14 +787,14 @@ void Map::cycleDebugOptions() {
#ifndef GL_ES_VERSION_2_0
if (impl->debugOptions & MapDebugOptions::StencilClip)
impl->debugOptions = MapDebugOptions::NoDebug;
else if (impl->debugOptions & MapDebugOptions::Wireframe)
else if (impl->debugOptions & MapDebugOptions::Overdraw)
impl->debugOptions = MapDebugOptions::StencilClip;
#else
if (impl->debugOptions & MapDebugOptions::Wireframe)
if (impl->debugOptions & MapDebugOptions::Overdraw)
impl->debugOptions = MapDebugOptions::NoDebug;
#endif // GL_ES_VERSION_2_0
else if (impl->debugOptions & MapDebugOptions::Collision)
impl->debugOptions = MapDebugOptions::Wireframe;
impl->debugOptions = MapDebugOptions::Overdraw;
else if (impl->debugOptions & MapDebugOptions::Timestamps)
impl->debugOptions = impl->debugOptions | MapDebugOptions::Collision;
else if (impl->debugOptions & MapDebugOptions::ParseStatus)

View File

@@ -145,7 +145,7 @@ void Painter::render(const Style& style, const FrameData& frame_, SpriteAtlas& a
config.depthMask = GL_TRUE;
config.colorMask = { GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE };
if (isWireframe()) {
if (isOverdraw()) {
config.blend = GL_TRUE;
config.blendFunc = { GL_CONSTANT_COLOR, GL_ONE };
const float overdraw = 1.0f / 8.0f;
@@ -248,7 +248,7 @@ void Painter::renderPass(RenderPass pass_,
if (!layer.baseImpl->hasRenderPass(pass))
continue;
if (isWireframe()) {
if (isOverdraw()) {
config.blend = GL_TRUE;
} else if (pass == RenderPass::Translucent) {
config.blendFunc.reset();

View File

@@ -156,7 +156,7 @@ private:
void setDepthSublayer(int n);
bool isWireframe() const { return frame.debugOptions & MapDebugOptions::Wireframe; }
bool isOverdraw() const { return frame.debugOptions & MapDebugOptions::Overdraw; }
mat4 projMatrix;
mat4 nativeMatrix;

View File

@@ -28,7 +28,7 @@ void Painter::renderBackground(const BackgroundLayer& layer) {
if (!imagePosA || !imagePosB)
return;
config.program = isWireframe() ? patternShader->getOverdrawID() : patternShader->getID();
config.program = isOverdraw() ? patternShader->getOverdrawID() : patternShader->getID();
patternShader->u_matrix = identityMatrix;
patternShader->u_pattern_tl_a = imagePosA->tl;
patternShader->u_pattern_br_a = imagePosA->br;
@@ -44,7 +44,7 @@ void Painter::renderBackground(const BackgroundLayer& layer) {
plainShader->u_color = properties.backgroundColor;
plainShader->u_opacity = properties.backgroundOpacity;
config.program = isWireframe() ? plainShader->getOverdrawID() : plainShader->getID();
config.program = isOverdraw() ? plainShader->getOverdrawID() : plainShader->getID();
backgroundArray.bind(*plainShader, tileStencilBuffer, BUFFER_OFFSET(0), store);
}

View File

@@ -27,7 +27,7 @@ void Painter::renderCircle(CircleBucket& bucket,
mat4 vtxMatrix = translatedMatrix(matrix, properties.circleTranslate, tileID,
properties.circleTranslateAnchor);
config.program = isWireframe() ? circleShader->getOverdrawID() : circleShader->getID();
config.program = isOverdraw() ? circleShader->getOverdrawID() : circleShader->getID();
circleShader->u_matrix = vtxMatrix;
circleShader->u_extrude_scale = extrudeScale;

View File

@@ -46,7 +46,7 @@ void Painter::renderFill(FillBucket& bucket,
// Because we're drawing top-to-bottom, and we update the stencil mask
// befrom, we have to draw the outline first (!)
if (outline && pass == RenderPass::Translucent) {
config.program = isWireframe() ? outlineShader->getOverdrawID() : outlineShader->getID();
config.program = isOverdraw() ? outlineShader->getOverdrawID() : outlineShader->getID();
outlineShader->u_matrix = vertexMatrix;
outlineShader->u_outline_color = strokeColor;
@@ -76,7 +76,7 @@ void Painter::renderFill(FillBucket& bucket,
// Image fill.
if (pass == RenderPass::Translucent && imagePosA && imagePosB) {
config.program = isWireframe() ? patternShader->getOverdrawID() : patternShader->getID();
config.program = isOverdraw() ? patternShader->getOverdrawID() : patternShader->getID();
patternShader->u_matrix = vertexMatrix;
patternShader->u_pattern_tl_a = imagePosA->tl;
patternShader->u_pattern_br_a = imagePosA->br;
@@ -105,7 +105,7 @@ void Painter::renderFill(FillBucket& bucket,
bucket.drawElements(*patternShader, store);
if (properties.fillAntialias && !isOutlineColorDefined) {
config.program = isWireframe() ? outlinePatternShader->getOverdrawID() : outlinePatternShader->getID();
config.program = isOverdraw() ? outlinePatternShader->getOverdrawID() : outlinePatternShader->getID();
outlinePatternShader->u_matrix = vertexMatrix;
// Draw the entire line
@@ -140,7 +140,7 @@ void Painter::renderFill(FillBucket& bucket,
// fragments or when it's translucent and we're drawing translucent
// fragments
// Draw filling rectangle.
config.program = isWireframe() ? plainShader->getOverdrawID() : plainShader->getID();
config.program = isOverdraw() ? plainShader->getOverdrawID() : plainShader->getID();
plainShader->u_matrix = vertexMatrix;
plainShader->u_color = fillColor;
plainShader->u_opacity = opacity;
@@ -154,7 +154,7 @@ void Painter::renderFill(FillBucket& bucket,
// Because we're drawing top-to-bottom, and we update the stencil mask
// below, we have to draw the outline first (!)
if (fringeline && pass == RenderPass::Translucent) {
config.program = isWireframe() ? outlineShader->getOverdrawID() : outlineShader->getID();
config.program = isOverdraw() ? outlineShader->getOverdrawID() : outlineShader->getID();
outlineShader->u_matrix = vertexMatrix;
outlineShader->u_outline_color = fillColor;

View File

@@ -57,7 +57,7 @@ void Painter::renderLine(LineBucket& bucket,
if (!properties.lineDasharray.value.from.empty()) {
config.program = isWireframe() ? linesdfShader->getOverdrawID() : linesdfShader->getID();
config.program = isOverdraw() ? linesdfShader->getOverdrawID() : linesdfShader->getID();
linesdfShader->u_matrix = vtxMatrix;
linesdfShader->u_linewidth = properties.lineWidth / 2;
@@ -102,7 +102,7 @@ void Painter::renderLine(LineBucket& bucket,
if (!imagePosA || !imagePosB)
return;
config.program = isWireframe() ? linepatternShader->getOverdrawID() : linepatternShader->getID();
config.program = isOverdraw() ? linepatternShader->getOverdrawID() : linepatternShader->getID();
linepatternShader->u_matrix = vtxMatrix;
linepatternShader->u_linewidth = properties.lineWidth / 2;
@@ -138,7 +138,7 @@ void Painter::renderLine(LineBucket& bucket,
bucket.drawLinePatterns(*linepatternShader, store);
} else {
config.program = isWireframe() ? lineShader->getOverdrawID() : lineShader->getID();
config.program = isOverdraw() ? lineShader->getOverdrawID() : lineShader->getID();
lineShader->u_matrix = vtxMatrix;
lineShader->u_linewidth = properties.lineWidth / 2;

View File

@@ -18,7 +18,7 @@ void Painter::renderRaster(RasterBucket& bucket,
const RasterPaintProperties& properties = layer.impl->paint;
if (bucket.hasData()) {
config.program = isWireframe() ? rasterShader->getOverdrawID() : rasterShader->getID();
config.program = isOverdraw() ? rasterShader->getOverdrawID() : rasterShader->getID();
rasterShader->u_matrix = matrix;
rasterShader->u_buffer = 0;
rasterShader->u_opacity = properties.rasterOpacity;

View File

@@ -58,7 +58,7 @@ void Painter::renderSDF(SymbolBucket &bucket,
exScale = {{ exScale[0] * scale, exScale[1] * scale }};
}
config.program = isWireframe() ? sdfShader.getOverdrawID() : sdfShader.getID();
config.program = isOverdraw() ? sdfShader.getOverdrawID() : sdfShader.getID();
sdfShader.u_matrix = vtxMatrix;
sdfShader.u_extrude_scale = exScale;
sdfShader.u_texsize = texsize;
@@ -199,7 +199,7 @@ void Painter::renderSymbol(SymbolBucket& bucket,
exScale = {{ exScale[0] * scale, exScale[1] * scale }};
}
config.program = isWireframe() ? iconShader->getOverdrawID() : iconShader->getID();
config.program = isOverdraw() ? iconShader->getOverdrawID() : iconShader->getID();
iconShader->u_matrix = vtxMatrix;
iconShader->u_extrude_scale = exScale;
iconShader->u_texsize = {{ float(activeSpriteAtlas->getWidth()) / 4.0f, float(activeSpriteAtlas->getHeight()) / 4.0f }};

View File

@@ -272,8 +272,8 @@ RenderData Style::getRenderData(MapDebugOptions debugOptions) const {
continue;
if (const BackgroundLayer* background = layer->as<BackgroundLayer>()) {
if (debugOptions & MapDebugOptions::Wireframe) {
// We want to skip glClear optimization in wireframe mode.
if (debugOptions & MapDebugOptions::Overdraw) {
// We want to skip glClear optimization in overdraw mode.
result.order.emplace_back(*layer);
continue;
}