diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2016-08-19 15:22:13 +0200 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2016-08-19 17:41:55 +0200 |
commit | 0df60c46517648b18e65d860f5a9356ba751ca11 (patch) | |
tree | fbe895bed6aaac9f65ee095a48e1b12e10af5b3b /platform | |
parent | cb33c861b4cfa82d7afcb5b9ec85d7797679a7d8 (diff) | |
download | qtlocation-mapboxgl-0df60c46517648b18e65d860f5a9356ba751ca11.tar.gz |
[core] add ability show visualize the depth buffer to the GLFW and macOS app
Diffstat (limited to 'platform')
-rw-r--r-- | platform/default/glfw_view.cpp | 13 | ||||
-rw-r--r-- | platform/macos/app/Base.lproj/MainMenu.xib | 6 | ||||
-rw-r--r-- | platform/macos/app/MapDocument.m | 14 | ||||
-rw-r--r-- | platform/macos/src/MGLMapView.h | 5 | ||||
-rw-r--r-- | platform/macos/src/MGLMapView.mm | 6 |
5 files changed, 43 insertions, 1 deletions
diff --git a/platform/default/glfw_view.cpp b/platform/default/glfw_view.cpp index 863f42ec76..b84bbfdf8a 100644 --- a/platform/default/glfw_view.cpp +++ b/platform/default/glfw_view.cpp @@ -97,6 +97,7 @@ GLFWView::GLFWView(bool fullscreen_, bool benchmark_) printf("- Press `Z` to cycle through north orientations\n"); printf("- Prezz `X` to cycle through the viewport modes\n"); printf("- Press `A` to cycle through Mapbox offices in the world + dateline monument\n"); + printf("- Press `B` to cycle through the color, stencil, and depth buffer\n"); printf("\n"); printf("- Press `1` through `6` to add increasing numbers of point annotations for testing\n"); printf("- Press `7` through `0` to add increasing numbers of shape annotations for testing\n"); @@ -155,6 +156,18 @@ void GLFWView::onKey(GLFWwindow *window, int key, int /*scancode*/, int action, } } break; + case GLFW_KEY_B: { + auto debug = view->map->getDebug(); + if (debug & mbgl::MapDebugOptions::StencilClip) { + debug &= ~mbgl::MapDebugOptions::StencilClip; + debug |= mbgl::MapDebugOptions::DepthBuffer; + } else if (debug & mbgl::MapDebugOptions::DepthBuffer) { + debug &= ~mbgl::MapDebugOptions::DepthBuffer; + } else { + debug |= mbgl::MapDebugOptions::StencilClip; + } + view->map->setDebug(debug); + } break; case GLFW_KEY_N: if (!mods) view->map->resetNorth(); diff --git a/platform/macos/app/Base.lproj/MainMenu.xib b/platform/macos/app/Base.lproj/MainMenu.xib index fae2a7db7d..716872a32a 100644 --- a/platform/macos/app/Base.lproj/MainMenu.xib +++ b/platform/macos/app/Base.lproj/MainMenu.xib @@ -474,6 +474,12 @@ <action selector="showStencilBuffer:" target="-1" id="WkN-t9-Mpv"/> </connections> </menuItem> + <menuItem title="Depth Buffer" keyEquivalent="d" id="CDq-70-oPa"> + <modifierMask key="keyEquivalentModifierMask" control="YES" option="YES" command="YES"/> + <connections> + <action selector="showDepthBuffer:" target="-1" id="h7r-eM-ZEu"/> + </connections> + </menuItem> <menuItem isSeparatorItem="YES" id="dYw-bb-tr1"/> <menuItem title="Show Tooltips on Dropped Pins" id="uir-Rx-zmw"> <modifierMask key="keyEquivalentModifierMask"/> diff --git a/platform/macos/app/MapDocument.m b/platform/macos/app/MapDocument.m index 9e65539990..3bb8f5872e 100644 --- a/platform/macos/app/MapDocument.m +++ b/platform/macos/app/MapDocument.m @@ -283,12 +283,19 @@ NS_ARRAY_OF(id <MGLAnnotation>) *MBXFlattenedShapes(NS_ARRAY_OF(id <MGLAnnotatio - (IBAction)showColorBuffer:(id)sender { self.mapView.debugMask &= ~MGLMapDebugStencilBufferMask; + self.mapView.debugMask &= ~MGLMapDebugDepthBufferMask; } - (IBAction)showStencilBuffer:(id)sender { + self.mapView.debugMask &= ~MGLMapDebugDepthBufferMask; self.mapView.debugMask |= MGLMapDebugStencilBufferMask; } +- (IBAction)showDepthBuffer:(id)sender { + self.mapView.debugMask &= ~MGLMapDebugStencilBufferMask; + self.mapView.debugMask |= MGLMapDebugDepthBufferMask; +} + - (IBAction)toggleShowsToolTipsOnDroppedPins:(id)sender { _showsToolTipsOnDroppedPins = !_showsToolTipsOnDroppedPins; } @@ -642,7 +649,7 @@ NS_ARRAY_OF(id <MGLAnnotation>) *MBXFlattenedShapes(NS_ARRAY_OF(id <MGLAnnotatio return YES; } if (menuItem.action == @selector(showColorBuffer:)) { - BOOL enabled = self.mapView.debugMask & MGLMapDebugStencilBufferMask; + BOOL enabled = self.mapView.debugMask & (MGLMapDebugStencilBufferMask | MGLMapDebugDepthBufferMask); menuItem.state = enabled ? NSOffState : NSOnState; return YES; } @@ -651,6 +658,11 @@ NS_ARRAY_OF(id <MGLAnnotation>) *MBXFlattenedShapes(NS_ARRAY_OF(id <MGLAnnotatio menuItem.state = enabled ? NSOnState : NSOffState; return YES; } + if (menuItem.action == @selector(showDepthBuffer:)) { + BOOL enabled = self.mapView.debugMask & MGLMapDebugDepthBufferMask; + menuItem.state = enabled ? NSOnState : NSOffState; + return YES; + } if (menuItem.action == @selector(toggleShowsToolTipsOnDroppedPins:)) { BOOL isShown = _showsToolTipsOnDroppedPins; menuItem.title = isShown ? @"Hide Tooltips on Dropped Pins" : @"Show Tooltips on Dropped Pins"; diff --git a/platform/macos/src/MGLMapView.h b/platform/macos/src/MGLMapView.h index fb2572ec08..37c13802b1 100644 --- a/platform/macos/src/MGLMapView.h +++ b/platform/macos/src/MGLMapView.h @@ -32,6 +32,11 @@ typedef NS_OPTIONS(NSUInteger, MGLMapDebugMaskOptions) { @note This option does nothing in Release builds of the SDK. */ MGLMapDebugStencilBufferMask = 1 << 6, + + /** The depth buffer is shown instead of the color buffer. + @note This option does nothing in Release builds of the SDK. + */ + MGLMapDebugDepthBufferMask = 1 << 7, }; @class MGLAnnotationImage; diff --git a/platform/macos/src/MGLMapView.mm b/platform/macos/src/MGLMapView.mm index 74a5ed96d2..7b7ab0247b 100644 --- a/platform/macos/src/MGLMapView.mm +++ b/platform/macos/src/MGLMapView.mm @@ -2450,6 +2450,9 @@ public: if (options & mbgl::MapDebugOptions::StencilClip) { mask |= MGLMapDebugStencilBufferMask; } + if (options & mbgl::MapDebugOptions::DepthBuffer) { + mask |= MGLMapDebugDepthBufferMask; + } return mask; } @@ -2473,6 +2476,9 @@ public: if (debugMask & MGLMapDebugStencilBufferMask) { options |= mbgl::MapDebugOptions::StencilClip; } + if (debugMask & MGLMapDebugDepthBufferMask) { + options |= mbgl::MapDebugOptions::DepthBuffer; + } _mbglMap->setDebug(options); } |