-
Notifications
You must be signed in to change notification settings - Fork 3.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Set texture sampler properties of ImageryLayer #5890
Merged
lilleyse
merged 28 commits into
CesiumGS:master
from
CCI-Tools:new_texture_sampler_prop
Oct 23, 2017
Merged
Changes from all commits
Commits
Show all changes
28 commits
Select commit
Hold shift + click to select a range
28d2921
Added properties ImageryLayer.minificationFilter and .magnificationFi…
forman 4aff9c2
Renamed local var as mipmapMinificationFilter
forman e80ba2b
Merge branch 'master' into new_texture_sampler_prop
forman c1e0e54
Added some more API doc
forman daa095f
Made TextureMagnification/MinificationFilter public and added API-docs.
forman cb90b62
Update wrt public TextureMagnification/MinificationFilter enums
forman b5fe609
avoid line breaks
forman 2dd4fd3
Use @exports so enum doc appears as its own section in the documentation
forman b9b8ab7
added @type {Number} and @constant to enum values
forman 722cd71
use upper case Boolean
forman d5ccbb8
made validate() methods @private
forman 8d27fe1
added defaultMinificationFilter and defaultMagnificationFilter to Ima…
forman 3ec59b0
Updated api docs minification/magnificationFilter props
forman e5b9b61
fixed order of constants
forman 47f66ba
fixed coding style
forman 88d3458
added new test for default texture filters of ImageryProvider
forman eb5ec0c
fix: turned context.cache.imageryLayer_<x>Sampler into context.cache.…
forman 924dc1c
reverted experimental change
forman 3d5bfaa
create mipmap textures only for linear mini/magni filters
forman 151f8fe
added texture filter example to Sandcastle
forman 270c805
Merge branch 'master' into new_texture_sampler_prop
forman dbf8d3a
fixed a harmless typo
forman 3d632cd
be more explicit about checking if something is undefined
forman 2a08e5d
Merge branch 'master' into new_texture_sampler_prop
forman c826ec9
merged upstream
forman 356f677
Tweak comment wording
lilleyse d5cf453
added assertions for imagery.texture.sampler
forman cdc9045
Merge branch 'master' into new_texture_sampler_prop
forman File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
110 changes: 110 additions & 0 deletions
110
Apps/Sandcastle/gallery/Imagery Layers Texture Filters.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
<!DOCTYPE html> | ||
<html lang="en"> | ||
<head> | ||
<meta charset="utf-8"> | ||
<meta http-equiv="X-UA-Compatible" content="IE=edge"> | ||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"> | ||
<meta name="description" content="Set the texture minification and magnification filters of an imagery layer."> | ||
<meta name="cesium-sandcastle-labels" content="Beginner, Tutorials, Showcases"> | ||
<title>Cesium Demo</title> | ||
<script type="text/javascript" src="../Sandcastle-header.js"></script> | ||
<script type="text/javascript" src="../../../ThirdParty/requirejs-2.1.20/require.js"></script> | ||
<script type="text/javascript"> | ||
require.config({ | ||
baseUrl : '../../../Source', | ||
waitSeconds : 60 | ||
}); | ||
</script> | ||
</head> | ||
<body class="sandcastle-loading" data-sandcastle-bucket="bucket-requirejs.html"> | ||
|
||
<style> | ||
@import url(../templates/bucket.css); | ||
|
||
#slider { | ||
position: absolute; | ||
left: 50%; | ||
top: 0px; | ||
background-color: #D3D3D3; | ||
width: 2px; | ||
height: 100%; | ||
z-index: 9999; | ||
} | ||
|
||
#slider:hover { | ||
cursor: ew-resize; | ||
} | ||
|
||
</style> | ||
|
||
<div id="cesiumContainer" class="fullSize"> | ||
<div id="slider"></div> | ||
</div> | ||
<div id="loadingOverlay"><h1>Loading...</h1></div> | ||
<div id="toolbar"></div> | ||
|
||
<script id="cesium_sandcastle_script"> | ||
|
||
|
||
function startup(Cesium) { | ||
'use strict'; | ||
//Sandcastle_Begin | ||
var viewer = new Cesium.Viewer('cesiumContainer'); | ||
viewer.camera.flyTo({destination : new Cesium.Rectangle.fromDegrees(-84, 43, -80, 47)}); | ||
|
||
var layers = viewer.imageryLayers; | ||
layers.removeAll(); | ||
|
||
var layerLinear = layers.addImageryProvider(Cesium.createTileMapServiceImageryProvider({ | ||
url : require.toUrl('Assets/Textures/NaturalEarthII') | ||
})); | ||
|
||
var layerNearest = layers.addImageryProvider(Cesium.createTileMapServiceImageryProvider({ | ||
url : require.toUrl('Assets/Textures/NaturalEarthII') | ||
})); | ||
|
||
// Set the texture minification and magnification filters of layerNearest. Default is LINEAR. | ||
layerNearest.minificationFilter = Cesium.TextureMinificationFilter.NEAREST; | ||
layerNearest.magnificationFilter = Cesium.TextureMagnificationFilter.NEAREST; | ||
|
||
// The remaining code installs a split layer so the effect of the texture filters becomes apparent. | ||
|
||
layerNearest.splitDirection = Cesium.ImagerySplitDirection.RIGHT; | ||
|
||
var slider = document.getElementById('slider'); | ||
viewer.scene.imagerySplitPosition = (slider.offsetLeft) / slider.parentElement.offsetWidth; | ||
|
||
var dragStartX = 0; | ||
|
||
document.getElementById('slider').addEventListener('mousedown', mouseDown, false); | ||
window.addEventListener('mouseup', mouseUp, false); | ||
|
||
function mouseUp() { | ||
window.removeEventListener('mousemove', sliderMove, true); | ||
} | ||
|
||
function mouseDown(e) { | ||
var slider = document.getElementById('slider'); | ||
dragStartX = e.clientX - slider.offsetLeft; | ||
window.addEventListener('mousemove', sliderMove, true); | ||
} | ||
|
||
function sliderMove(e) { | ||
var slider = document.getElementById('slider'); | ||
var splitPosition = (e.clientX - dragStartX) / slider.parentElement.offsetWidth; | ||
slider.style.left = 100.0 * splitPosition + "%"; | ||
viewer.scene.imagerySplitPosition = splitPosition; | ||
} | ||
//Sandcastle_End | ||
|
||
Sandcastle.finishedLoading(); | ||
} | ||
if (typeof Cesium !== "undefined") { | ||
startup(Cesium); | ||
} else if (typeof require === "function") { | ||
require(["Cesium"], startup); | ||
} | ||
</script> | ||
|
||
</body> | ||
</html> |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7,12 +7,38 @@ define([ | |
'use strict'; | ||
|
||
/** | ||
* @private | ||
* Enumerates all possible filters used when magnifying WebGL textures, which takes places when zooming | ||
* into imagery. Provides the possible values for the {@link ImageryLayer#magnificationFilter} property. | ||
* | ||
* @exports TextureMagnificationFilter | ||
* | ||
* @see TextureMinificationFilter | ||
* @see ImageryLayer#magnificationFilter | ||
*/ | ||
var TextureMagnificationFilter = { | ||
/** | ||
* Nearest neighbor sampling of image pixels to texture. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. In this file and below, try to avoid providing reference doc that is just a repeat of the enum. @lilleyse could you add a tad more description and trade offs, e.g., visual quality vs speed? |
||
* | ||
* @type {Number} | ||
* @constant | ||
*/ | ||
NEAREST : WebGLConstants.NEAREST, | ||
/** | ||
* Bi-linear interpolation of image pixels to texture. | ||
* | ||
* @type {Number} | ||
* @constant | ||
*/ | ||
LINEAR : WebGLConstants.LINEAR, | ||
|
||
/** | ||
* Validates the given <code>textureMinificationFilter</code> with respect to the possible enum values. | ||
* | ||
* @private | ||
* | ||
* @param textureMagnificationFilter | ||
* @returns {Boolean} <code>true</code> if <code>textureMagnificationFilter</code> is valid. | ||
*/ | ||
validate : function(textureMagnificationFilter) { | ||
return ((textureMagnificationFilter === TextureMagnificationFilter.NEAREST) || | ||
(textureMagnificationFilter === TextureMagnificationFilter.LINEAR)); | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@lilleyse this
@see
- and the one inTextureMinificationFilter.js
- is not needed and not customary. Can you please remove in master?