cesium 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE.md +259 -0
- data/README.rdoc +90 -0
- data/Rakefile +40 -0
- data/app/assets/javascripts/Assets/Assets.profile.js +8 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_0.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_1.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_10.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_11.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_12.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_13.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_14.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_15.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_16.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_17.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_18.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_19.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_2.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_20.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_21.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_22.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_23.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_24.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_25.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_26.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_27.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_3.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_4.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_5.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_6.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_7.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_8.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_9.json +1 -0
- data/app/assets/javascripts/Assets/Textures/NE2_LR_LC_SR_W_DR_2048.jpg +0 -0
- data/app/assets/javascripts/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg +0 -0
- data/app/assets/javascripts/Assets/Textures/SkyBox/tycho2t3_80_my.jpg +0 -0
- data/app/assets/javascripts/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg +0 -0
- data/app/assets/javascripts/Assets/Textures/SkyBox/tycho2t3_80_px.jpg +0 -0
- data/app/assets/javascripts/Assets/Textures/SkyBox/tycho2t3_80_py.jpg +0 -0
- data/app/assets/javascripts/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg +0 -0
- data/app/assets/javascripts/Assets/Textures/waterNormals.jpg +0 -0
- data/app/assets/javascripts/Assets/package.json +6 -0
- data/app/assets/javascripts/Cesium.js +320 -0
- data/app/assets/javascripts/Core/AnimationController.js +148 -0
- data/app/assets/javascripts/Core/AxisAlignedBoundingBox.js +243 -0
- data/app/assets/javascripts/Core/BoundingRectangle.js +364 -0
- data/app/assets/javascripts/Core/BoundingSphere.js +819 -0
- data/app/assets/javascripts/Core/BoxTessellator.js +93 -0
- data/app/assets/javascripts/Core/Cartesian2.js +762 -0
- data/app/assets/javascripts/Core/Cartesian3.js +861 -0
- data/app/assets/javascripts/Core/Cartesian4.js +762 -0
- data/app/assets/javascripts/Core/Cartographic.js +211 -0
- data/app/assets/javascripts/Core/CatmullRomSpline.js +232 -0
- data/app/assets/javascripts/Core/Clock.js +195 -0
- data/app/assets/javascripts/Core/ClockRange.js +37 -0
- data/app/assets/javascripts/Core/ClockStep.js +32 -0
- data/app/assets/javascripts/Core/Color.js +1629 -0
- data/app/assets/javascripts/Core/ComponentDatatype.js +119 -0
- data/app/assets/javascripts/Core/Core.profile.js +8 -0
- data/app/assets/javascripts/Core/CubeMapEllipsoidTessellator.js +198 -0
- data/app/assets/javascripts/Core/CubicRealPolynomial.js +251 -0
- data/app/assets/javascripts/Core/DefaultProxy.js +30 -0
- data/app/assets/javascripts/Core/DeveloperError.js +60 -0
- data/app/assets/javascripts/Core/EarthOrientationParameters.js +383 -0
- data/app/assets/javascripts/Core/EarthOrientationParametersSample.js +50 -0
- data/app/assets/javascripts/Core/Ellipsoid.js +539 -0
- data/app/assets/javascripts/Core/EllipsoidTangentPlane.js +207 -0
- data/app/assets/javascripts/Core/EllipsoidalOccluder.js +151 -0
- data/app/assets/javascripts/Core/EncodedCartesian3.js +197 -0
- data/app/assets/javascripts/Core/Enumeration.js +67 -0
- data/app/assets/javascripts/Core/Event.js +122 -0
- data/app/assets/javascripts/Core/Extent.js +383 -0
- data/app/assets/javascripts/Core/ExtentTessellator.js +384 -0
- data/app/assets/javascripts/Core/FAR.js +13 -0
- data/app/assets/javascripts/Core/FeatureDetection.js +126 -0
- data/app/assets/javascripts/Core/Fullscreen.js +235 -0
- data/app/assets/javascripts/Core/GeographicProjection.js +107 -0
- data/app/assets/javascripts/Core/HermitePolynomialApproximation.js +176 -0
- data/app/assets/javascripts/Core/HermiteSpline.js +234 -0
- data/app/assets/javascripts/Core/Iau2006XysData.js +259 -0
- data/app/assets/javascripts/Core/Iau2006XysSample.js +36 -0
- data/app/assets/javascripts/Core/IndexDatatype.js +28 -0
- data/app/assets/javascripts/Core/Intersect.js +40 -0
- data/app/assets/javascripts/Core/IntersectionTests.js +359 -0
- data/app/assets/javascripts/Core/Interval.js +27 -0
- data/app/assets/javascripts/Core/Iso8601.js +46 -0
- data/app/assets/javascripts/Core/JulianDate.js +1228 -0
- data/app/assets/javascripts/Core/KeyboardEventModifier.js +38 -0
- data/app/assets/javascripts/Core/LagrangePolynomialApproximation.js +96 -0
- data/app/assets/javascripts/Core/LeapSecond.js +158 -0
- data/app/assets/javascripts/Core/LinearApproximation.js +98 -0
- data/app/assets/javascripts/Core/Math.js +532 -0
- data/app/assets/javascripts/Core/Matrix2.js +833 -0
- data/app/assets/javascripts/Core/Matrix3.js +1099 -0
- data/app/assets/javascripts/Core/Matrix4.js +2164 -0
- data/app/assets/javascripts/Core/MeshFilters.js +568 -0
- data/app/assets/javascripts/Core/Occluder.js +474 -0
- data/app/assets/javascripts/Core/OrientationInterpolator.js +109 -0
- data/app/assets/javascripts/Core/PlaneTessellator.js +74 -0
- data/app/assets/javascripts/Core/PolygonPipeline.js +792 -0
- data/app/assets/javascripts/Core/PolylinePipeline.js +90 -0
- data/app/assets/javascripts/Core/PrimitiveType.js +80 -0
- data/app/assets/javascripts/Core/QuadraticRealPolynomial.js +146 -0
- data/app/assets/javascripts/Core/QuarticRealPolynomial.js +339 -0
- data/app/assets/javascripts/Core/Quaternion.js +947 -0
- data/app/assets/javascripts/Core/Queue.js +95 -0
- data/app/assets/javascripts/Core/Ray.js +64 -0
- data/app/assets/javascripts/Core/ReferenceFrame.js +25 -0
- data/app/assets/javascripts/Core/RequestErrorEvent.js +35 -0
- data/app/assets/javascripts/Core/RuntimeError.js +59 -0
- data/app/assets/javascripts/Core/ScreenSpaceEventHandler.js +658 -0
- data/app/assets/javascripts/Core/ScreenSpaceEventType.js +149 -0
- data/app/assets/javascripts/Core/Shapes.js +230 -0
- data/app/assets/javascripts/Core/Spherical.js +192 -0
- data/app/assets/javascripts/Core/TaskProcessor.js +131 -0
- data/app/assets/javascripts/Core/TimeConstants.js +85 -0
- data/app/assets/javascripts/Core/TimeInterval.js +305 -0
- data/app/assets/javascripts/Core/TimeIntervalCollection.js +543 -0
- data/app/assets/javascripts/Core/TimeStandard.js +31 -0
- data/app/assets/javascripts/Core/Tipsify.js +285 -0
- data/app/assets/javascripts/Core/Transforms.js +614 -0
- data/app/assets/javascripts/Core/TridiagonalSystemSolver.js +102 -0
- data/app/assets/javascripts/Core/Visibility.js +38 -0
- data/app/assets/javascripts/Core/WebMercatorProjection.js +154 -0
- data/app/assets/javascripts/Core/WindingOrder.js +40 -0
- data/app/assets/javascripts/Core/binarySearch.js +69 -0
- data/app/assets/javascripts/Core/buildModuleUrl.js +77 -0
- data/app/assets/javascripts/Core/clone.js +21 -0
- data/app/assets/javascripts/Core/combine.js +81 -0
- data/app/assets/javascripts/Core/computeSunPosition.js +116 -0
- data/app/assets/javascripts/Core/createGuid.js +25 -0
- data/app/assets/javascripts/Core/defaultValue.js +22 -0
- data/app/assets/javascripts/Core/destroyObject.js +61 -0
- data/app/assets/javascripts/Core/freezeObject.js +20 -0
- data/app/assets/javascripts/Core/getImagePixels.js +46 -0
- data/app/assets/javascripts/Core/isLeapYear.js +30 -0
- data/app/assets/javascripts/Core/jsonp.js +116 -0
- data/app/assets/javascripts/Core/loadArrayBuffer.js +76 -0
- data/app/assets/javascripts/Core/loadImage.js +85 -0
- data/app/assets/javascripts/Core/loadJson.js +54 -0
- data/app/assets/javascripts/Core/loadText.js +78 -0
- data/app/assets/javascripts/Core/loadXML.js +76 -0
- data/app/assets/javascripts/Core/package.json +6 -0
- data/app/assets/javascripts/Core/pointInsideTriangle2D.js +41 -0
- data/app/assets/javascripts/Core/requestAnimationFrame.js +61 -0
- data/app/assets/javascripts/Core/throttleRequestByServer.js +74 -0
- data/app/assets/javascripts/Core/writeTextToCanvas.js +92 -0
- data/app/assets/javascripts/DynamicScene/CompositeDynamicObjectCollection.js +254 -0
- data/app/assets/javascripts/DynamicScene/CzmlBoolean.js +57 -0
- data/app/assets/javascripts/DynamicScene/CzmlCartesian2.js +96 -0
- data/app/assets/javascripts/DynamicScene/CzmlCartesian3.js +99 -0
- data/app/assets/javascripts/DynamicScene/CzmlCartographic.js +125 -0
- data/app/assets/javascripts/DynamicScene/CzmlColor.js +127 -0
- data/app/assets/javascripts/DynamicScene/CzmlDefaults.js +135 -0
- data/app/assets/javascripts/DynamicScene/CzmlHorizontalOrigin.js +59 -0
- data/app/assets/javascripts/DynamicScene/CzmlImage.js +61 -0
- data/app/assets/javascripts/DynamicScene/CzmlLabelStyle.js +59 -0
- data/app/assets/javascripts/DynamicScene/CzmlNumber.js +82 -0
- data/app/assets/javascripts/DynamicScene/CzmlString.js +56 -0
- data/app/assets/javascripts/DynamicScene/CzmlUnitCartesian3.js +99 -0
- data/app/assets/javascripts/DynamicScene/CzmlUnitQuaternion.js +172 -0
- data/app/assets/javascripts/DynamicScene/CzmlUnitSpherical.js +98 -0
- data/app/assets/javascripts/DynamicScene/CzmlVerticalOrigin.js +59 -0
- data/app/assets/javascripts/DynamicScene/DynamicBillboard.js +245 -0
- data/app/assets/javascripts/DynamicScene/DynamicBillboardVisualizer.js +347 -0
- data/app/assets/javascripts/DynamicScene/DynamicColorMaterial.js +78 -0
- data/app/assets/javascripts/DynamicScene/DynamicCone.js +291 -0
- data/app/assets/javascripts/DynamicScene/DynamicConeVisualizer.js +350 -0
- data/app/assets/javascripts/DynamicScene/DynamicConeVisualizerUsingCustomSensor.js +389 -0
- data/app/assets/javascripts/DynamicScene/DynamicDirectionsProperty.js +163 -0
- data/app/assets/javascripts/DynamicScene/DynamicEllipsoid.js +158 -0
- data/app/assets/javascripts/DynamicScene/DynamicEllipsoidVisualizer.js +277 -0
- data/app/assets/javascripts/DynamicScene/DynamicImageMaterial.js +136 -0
- data/app/assets/javascripts/DynamicScene/DynamicLabel.js +286 -0
- data/app/assets/javascripts/DynamicScene/DynamicLabelVisualizer.js +341 -0
- data/app/assets/javascripts/DynamicScene/DynamicMaterialProperty.js +125 -0
- data/app/assets/javascripts/DynamicScene/DynamicObject.js +364 -0
- data/app/assets/javascripts/DynamicScene/DynamicObjectCollection.js +137 -0
- data/app/assets/javascripts/DynamicScene/DynamicObjectView.js +299 -0
- data/app/assets/javascripts/DynamicScene/DynamicPath.js +214 -0
- data/app/assets/javascripts/DynamicScene/DynamicPathVisualizer.js +402 -0
- data/app/assets/javascripts/DynamicScene/DynamicPoint.js +184 -0
- data/app/assets/javascripts/DynamicScene/DynamicPointVisualizer.js +323 -0
- data/app/assets/javascripts/DynamicScene/DynamicPolygon.js +138 -0
- data/app/assets/javascripts/DynamicScene/DynamicPolygonVisualizer.js +251 -0
- data/app/assets/javascripts/DynamicScene/DynamicPolyline.js +183 -0
- data/app/assets/javascripts/DynamicScene/DynamicPolylineVisualizer.js +268 -0
- data/app/assets/javascripts/DynamicScene/DynamicPositionProperty.js +525 -0
- data/app/assets/javascripts/DynamicScene/DynamicProperty.js +352 -0
- data/app/assets/javascripts/DynamicScene/DynamicPyramid.js +204 -0
- data/app/assets/javascripts/DynamicScene/DynamicPyramidVisualizer.js +302 -0
- data/app/assets/javascripts/DynamicScene/DynamicScene.profile.js +8 -0
- data/app/assets/javascripts/DynamicScene/DynamicVertexPositionsProperty.js +199 -0
- data/app/assets/javascripts/DynamicScene/ReferenceProperty.js +155 -0
- data/app/assets/javascripts/DynamicScene/VisualizerCollection.js +181 -0
- data/app/assets/javascripts/DynamicScene/package.json +6 -0
- data/app/assets/javascripts/DynamicScene/processCzml.js +77 -0
- data/app/assets/javascripts/Renderer/BlendEquation.js +52 -0
- data/app/assets/javascripts/Renderer/BlendFunction.js +158 -0
- data/app/assets/javascripts/Renderer/BlendingState.js +64 -0
- data/app/assets/javascripts/Renderer/Buffer.js +141 -0
- data/app/assets/javascripts/Renderer/BufferUsage.js +48 -0
- data/app/assets/javascripts/Renderer/ClearCommand.js +40 -0
- data/app/assets/javascripts/Renderer/CommandLists.js +42 -0
- data/app/assets/javascripts/Renderer/Context.js +2805 -0
- data/app/assets/javascripts/Renderer/CubeMap.js +358 -0
- data/app/assets/javascripts/Renderer/CubeMapFace.js +202 -0
- data/app/assets/javascripts/Renderer/CullFace.js +50 -0
- data/app/assets/javascripts/Renderer/DepthFunction.js +95 -0
- data/app/assets/javascripts/Renderer/DrawCommand.js +96 -0
- data/app/assets/javascripts/Renderer/Framebuffer.js +435 -0
- data/app/assets/javascripts/Renderer/MipmapHint.js +50 -0
- data/app/assets/javascripts/Renderer/PickFramebuffer.js +178 -0
- data/app/assets/javascripts/Renderer/PixelDatatype.js +86 -0
- data/app/assets/javascripts/Renderer/PixelFormat.js +113 -0
- data/app/assets/javascripts/Renderer/Renderbuffer.js +102 -0
- data/app/assets/javascripts/Renderer/RenderbufferFormat.js +77 -0
- data/app/assets/javascripts/Renderer/Renderer.profile.js +8 -0
- data/app/assets/javascripts/Renderer/ShaderCache.js +121 -0
- data/app/assets/javascripts/Renderer/ShaderProgram.js +2402 -0
- data/app/assets/javascripts/Renderer/StencilFunction.js +95 -0
- data/app/assets/javascripts/Renderer/StencilOperation.js +95 -0
- data/app/assets/javascripts/Renderer/Texture.js +395 -0
- data/app/assets/javascripts/Renderer/TextureAtlas.js +472 -0
- data/app/assets/javascripts/Renderer/TextureAtlasBuilder.js +133 -0
- data/app/assets/javascripts/Renderer/TextureMagnificationFilter.js +41 -0
- data/app/assets/javascripts/Renderer/TextureMinificationFilter.js +77 -0
- data/app/assets/javascripts/Renderer/TextureWrap.js +50 -0
- data/app/assets/javascripts/Renderer/UniformDatatype.js +218 -0
- data/app/assets/javascripts/Renderer/UniformState.js +799 -0
- data/app/assets/javascripts/Renderer/VertexArray.js +365 -0
- data/app/assets/javascripts/Renderer/VertexArrayFacade.js +574 -0
- data/app/assets/javascripts/Renderer/VertexLayout.js +49 -0
- data/app/assets/javascripts/Renderer/loadCubeMap.js +92 -0
- data/app/assets/javascripts/Renderer/package.json +6 -0
- data/app/assets/javascripts/Scene/AnimationCollection.js +249 -0
- data/app/assets/javascripts/Scene/ArcGisMapServerImageryProvider.js +384 -0
- data/app/assets/javascripts/Scene/Billboard.js +680 -0
- data/app/assets/javascripts/Scene/BillboardCollection.js +1209 -0
- data/app/assets/javascripts/Scene/BingMapsImageryProvider.js +460 -0
- data/app/assets/javascripts/Scene/BingMapsStyle.js +55 -0
- data/app/assets/javascripts/Scene/Camera.js +358 -0
- data/app/assets/javascripts/Scene/CameraColumbusViewMode.js +30 -0
- data/app/assets/javascripts/Scene/CameraController.js +1258 -0
- data/app/assets/javascripts/Scene/CameraEventAggregator.js +270 -0
- data/app/assets/javascripts/Scene/CameraEventType.js +53 -0
- data/app/assets/javascripts/Scene/CameraFlightPath.js +495 -0
- data/app/assets/javascripts/Scene/CentralBody.js +817 -0
- data/app/assets/javascripts/Scene/CentralBodySurface.js +1120 -0
- data/app/assets/javascripts/Scene/CentralBodySurfaceShaderSet.js +107 -0
- data/app/assets/javascripts/Scene/ComplexConicSensorVolume.js +511 -0
- data/app/assets/javascripts/Scene/CompositePrimitive.js +454 -0
- data/app/assets/javascripts/Scene/CullingVolume.js +59 -0
- data/app/assets/javascripts/Scene/CustomSensorVolume.js +440 -0
- data/app/assets/javascripts/Scene/DiscardMissingTileImagePolicy.js +134 -0
- data/app/assets/javascripts/Scene/EllipsoidPrimitive.js +412 -0
- data/app/assets/javascripts/Scene/EllipsoidTerrainProvider.js +182 -0
- data/app/assets/javascripts/Scene/FrameState.js +86 -0
- data/app/assets/javascripts/Scene/FrustumCommands.js +32 -0
- data/app/assets/javascripts/Scene/GeographicTilingScheme.js +265 -0
- data/app/assets/javascripts/Scene/HorizontalOrigin.js +39 -0
- data/app/assets/javascripts/Scene/Imagery.js +85 -0
- data/app/assets/javascripts/Scene/ImageryLayer.js +876 -0
- data/app/assets/javascripts/Scene/ImageryLayerCollection.js +403 -0
- data/app/assets/javascripts/Scene/ImageryProvider.js +185 -0
- data/app/assets/javascripts/Scene/ImageryProviderError.js +149 -0
- data/app/assets/javascripts/Scene/ImageryState.js +20 -0
- data/app/assets/javascripts/Scene/Label.js +706 -0
- data/app/assets/javascripts/Scene/LabelCollection.js +697 -0
- data/app/assets/javascripts/Scene/LabelStyle.js +39 -0
- data/app/assets/javascripts/Scene/Material.js +1177 -0
- data/app/assets/javascripts/Scene/NeverTileDiscardPolicy.js +38 -0
- data/app/assets/javascripts/Scene/OpenStreetMapImageryProvider.js +282 -0
- data/app/assets/javascripts/Scene/OrthographicFrustum.js +345 -0
- data/app/assets/javascripts/Scene/PerformanceDisplay.js +183 -0
- data/app/assets/javascripts/Scene/PerspectiveFrustum.js +239 -0
- data/app/assets/javascripts/Scene/PerspectiveOffCenterFrustum.js +394 -0
- data/app/assets/javascripts/Scene/Polygon.js +886 -0
- data/app/assets/javascripts/Scene/Polyline.js +441 -0
- data/app/assets/javascripts/Scene/PolylineCollection.js +1532 -0
- data/app/assets/javascripts/Scene/Projections.js +93 -0
- data/app/assets/javascripts/Scene/RectangularPyramidSensorVolume.js +224 -0
- data/app/assets/javascripts/Scene/Scene.js +632 -0
- data/app/assets/javascripts/Scene/Scene.profile.js +8 -0
- data/app/assets/javascripts/Scene/SceneMode.js +51 -0
- data/app/assets/javascripts/Scene/SceneTransitioner.js +776 -0
- data/app/assets/javascripts/Scene/ScreenSpaceCameraController.js +1063 -0
- data/app/assets/javascripts/Scene/SensorVolumeCollection.js +192 -0
- data/app/assets/javascripts/Scene/SingleTileImageryProvider.js +295 -0
- data/app/assets/javascripts/Scene/SkyAtmosphere.js +239 -0
- data/app/assets/javascripts/Scene/SkyBox.js +231 -0
- data/app/assets/javascripts/Scene/TerrainProvider.js +229 -0
- data/app/assets/javascripts/Scene/TexturePool.js +154 -0
- data/app/assets/javascripts/Scene/Tile.js +322 -0
- data/app/assets/javascripts/Scene/TileDiscardPolicy.js +42 -0
- data/app/assets/javascripts/Scene/TileImagery.js +36 -0
- data/app/assets/javascripts/Scene/TileLoadQueue.js +123 -0
- data/app/assets/javascripts/Scene/TileMapServiceImageryProvider.js +337 -0
- data/app/assets/javascripts/Scene/TileReplacementQueue.js +139 -0
- data/app/assets/javascripts/Scene/TileState.js +19 -0
- data/app/assets/javascripts/Scene/TilingScheme.js +213 -0
- data/app/assets/javascripts/Scene/VerticalOrigin.js +39 -0
- data/app/assets/javascripts/Scene/ViewportQuad.js +256 -0
- data/app/assets/javascripts/Scene/WebMapServiceImageryProvider.js +374 -0
- data/app/assets/javascripts/Scene/WebMercatorTilingScheme.js +291 -0
- data/app/assets/javascripts/Scene/package.json +6 -0
- data/app/assets/javascripts/Shaders/BillboardCollectionFS.glsl +30 -0
- data/app/assets/javascripts/Shaders/BillboardCollectionFS.js +31 -0
- data/app/assets/javascripts/Shaders/BillboardCollectionVS.glsl +68 -0
- data/app/assets/javascripts/Shaders/BillboardCollectionVS.js +54 -0
- data/app/assets/javascripts/Shaders/BuiltinFunctions.glsl +927 -0
- data/app/assets/javascripts/Shaders/BuiltinFunctions.js +322 -0
- data/app/assets/javascripts/Shaders/CentralBodyFS.glsl +106 -0
- data/app/assets/javascripts/Shaders/CentralBodyFS.js +82 -0
- data/app/assets/javascripts/Shaders/CentralBodyFSDepth.glsl +20 -0
- data/app/assets/javascripts/Shaders/CentralBodyFSDepth.js +22 -0
- data/app/assets/javascripts/Shaders/CentralBodyFSPole.glsl +29 -0
- data/app/assets/javascripts/Shaders/CentralBodyFSPole.js +28 -0
- data/app/assets/javascripts/Shaders/CentralBodyVS.glsl +88 -0
- data/app/assets/javascripts/Shaders/CentralBodyVS.js +69 -0
- data/app/assets/javascripts/Shaders/CentralBodyVSDepth.glsl +9 -0
- data/app/assets/javascripts/Shaders/CentralBodyVSDepth.js +13 -0
- data/app/assets/javascripts/Shaders/CentralBodyVSPole.glsl +12 -0
- data/app/assets/javascripts/Shaders/CentralBodyVSPole.js +15 -0
- data/app/assets/javascripts/Shaders/ComplexConicSensorVolumeFS.glsl +448 -0
- data/app/assets/javascripts/Shaders/ComplexConicSensorVolumeFS.js +361 -0
- data/app/assets/javascripts/Shaders/ComplexConicSensorVolumeVS.glsl +19 -0
- data/app/assets/javascripts/Shaders/ComplexConicSensorVolumeVS.js +20 -0
- data/app/assets/javascripts/Shaders/ConstructiveSolidGeometry.glsl +886 -0
- data/app/assets/javascripts/Shaders/ConstructiveSolidGeometry.js +586 -0
- data/app/assets/javascripts/Shaders/CustomSensorVolumeFS.glsl +126 -0
- data/app/assets/javascripts/Shaders/CustomSensorVolumeFS.js +95 -0
- data/app/assets/javascripts/Shaders/CustomSensorVolumeVS.glsl +14 -0
- data/app/assets/javascripts/Shaders/CustomSensorVolumeVS.js +18 -0
- data/app/assets/javascripts/Shaders/EllipsoidFS.glsl +40 -0
- data/app/assets/javascripts/Shaders/EllipsoidFS.js +38 -0
- data/app/assets/javascripts/Shaders/EllipsoidVS.glsl +26 -0
- data/app/assets/javascripts/Shaders/EllipsoidVS.js +16 -0
- data/app/assets/javascripts/Shaders/Materials/AsphaltMaterial.glsl +25 -0
- data/app/assets/javascripts/Shaders/Materials/AsphaltMaterial.js +23 -0
- data/app/assets/javascripts/Shaders/Materials/BlobMaterial.glsl +18 -0
- data/app/assets/javascripts/Shaders/Materials/BlobMaterial.js +19 -0
- data/app/assets/javascripts/Shaders/Materials/BrickMaterial.glsl +42 -0
- data/app/assets/javascripts/Shaders/Materials/BrickMaterial.js +36 -0
- data/app/assets/javascripts/Shaders/Materials/BumpMapMaterial.glsl +29 -0
- data/app/assets/javascripts/Shaders/Materials/BumpMapMaterial.js +27 -0
- data/app/assets/javascripts/Shaders/Materials/CementMaterial.glsl +19 -0
- data/app/assets/javascripts/Shaders/Materials/CementMaterial.js +20 -0
- data/app/assets/javascripts/Shaders/Materials/CheckerboardMaterial.glsl +38 -0
- data/app/assets/javascripts/Shaders/Materials/CheckerboardMaterial.js +32 -0
- data/app/assets/javascripts/Shaders/Materials/DotMaterial.glsl +17 -0
- data/app/assets/javascripts/Shaders/Materials/DotMaterial.js +18 -0
- data/app/assets/javascripts/Shaders/Materials/ErosionMaterial.glsl +23 -0
- data/app/assets/javascripts/Shaders/Materials/ErosionMaterial.js +24 -0
- data/app/assets/javascripts/Shaders/Materials/FacetMaterial.glsl +18 -0
- data/app/assets/javascripts/Shaders/Materials/FacetMaterial.js +19 -0
- data/app/assets/javascripts/Shaders/Materials/FresnelMaterial.glsl +12 -0
- data/app/assets/javascripts/Shaders/Materials/FresnelMaterial.js +15 -0
- data/app/assets/javascripts/Shaders/Materials/GrassMaterial.glsl +28 -0
- data/app/assets/javascripts/Shaders/Materials/GrassMaterial.js +26 -0
- data/app/assets/javascripts/Shaders/Materials/NormalMapMaterial.glsl +19 -0
- data/app/assets/javascripts/Shaders/Materials/NormalMapMaterial.js +21 -0
- data/app/assets/javascripts/Shaders/Materials/ReflectionMaterial.glsl +13 -0
- data/app/assets/javascripts/Shaders/Materials/ReflectionMaterial.js +16 -0
- data/app/assets/javascripts/Shaders/Materials/RefractionMaterial.glsl +14 -0
- data/app/assets/javascripts/Shaders/Materials/RefractionMaterial.js +17 -0
- data/app/assets/javascripts/Shaders/Materials/RimLightingMaterial.glsl +18 -0
- data/app/assets/javascripts/Shaders/Materials/RimLightingMaterial.js +19 -0
- data/app/assets/javascripts/Shaders/Materials/StripeMaterial.glsl +29 -0
- data/app/assets/javascripts/Shaders/Materials/StripeMaterial.js +26 -0
- data/app/assets/javascripts/Shaders/Materials/TieDyeMaterial.glsl +17 -0
- data/app/assets/javascripts/Shaders/Materials/TieDyeMaterial.js +19 -0
- data/app/assets/javascripts/Shaders/Materials/Water.glsl +91 -0
- data/app/assets/javascripts/Shaders/Materials/Water.js +60 -0
- data/app/assets/javascripts/Shaders/Materials/WoodMaterial.glsl +36 -0
- data/app/assets/javascripts/Shaders/Materials/WoodMaterial.js +31 -0
- data/app/assets/javascripts/Shaders/Noise.glsl +453 -0
- data/app/assets/javascripts/Shaders/Noise.js +242 -0
- data/app/assets/javascripts/Shaders/PolygonFS.glsl +27 -0
- data/app/assets/javascripts/Shaders/PolygonFS.js +23 -0
- data/app/assets/javascripts/Shaders/PolygonFSPick.glsl +6 -0
- data/app/assets/javascripts/Shaders/PolygonFSPick.js +11 -0
- data/app/assets/javascripts/Shaders/PolygonVS.glsl +38 -0
- data/app/assets/javascripts/Shaders/PolygonVS.js +39 -0
- data/app/assets/javascripts/Shaders/PolygonVSPick.glsl +30 -0
- data/app/assets/javascripts/Shaders/PolygonVSPick.js +32 -0
- data/app/assets/javascripts/Shaders/PolylineFS.glsl +6 -0
- data/app/assets/javascripts/Shaders/PolylineFS.js +11 -0
- data/app/assets/javascripts/Shaders/PolylineVS.glsl +34 -0
- data/app/assets/javascripts/Shaders/PolylineVS.js +35 -0
- data/app/assets/javascripts/Shaders/Ray.glsl +532 -0
- data/app/assets/javascripts/Shaders/Ray.js +357 -0
- data/app/assets/javascripts/Shaders/ReprojectWebMercatorFS.glsl +26 -0
- data/app/assets/javascripts/Shaders/ReprojectWebMercatorFS.js +22 -0
- data/app/assets/javascripts/Shaders/ReprojectWebMercatorVS.glsl +11 -0
- data/app/assets/javascripts/Shaders/ReprojectWebMercatorVS.js +14 -0
- data/app/assets/javascripts/Shaders/SensorVolume.glsl +43 -0
- data/app/assets/javascripts/Shaders/SensorVolume.js +31 -0
- data/app/assets/javascripts/Shaders/Shaders.profile.js +8 -0
- data/app/assets/javascripts/Shaders/SkyAtmosphereFS.glsl +70 -0
- data/app/assets/javascripts/Shaders/SkyAtmosphereFS.js +62 -0
- data/app/assets/javascripts/Shaders/SkyAtmosphereVS.glsl +131 -0
- data/app/assets/javascripts/Shaders/SkyAtmosphereVS.js +115 -0
- data/app/assets/javascripts/Shaders/SkyBoxFS.glsl +10 -0
- data/app/assets/javascripts/Shaders/SkyBoxFS.js +14 -0
- data/app/assets/javascripts/Shaders/SkyBoxVS.glsl +10 -0
- data/app/assets/javascripts/Shaders/SkyBoxVS.js +14 -0
- data/app/assets/javascripts/Shaders/ViewportQuadFS.glsl +16 -0
- data/app/assets/javascripts/Shaders/ViewportQuadFS.js +17 -0
- data/app/assets/javascripts/Shaders/ViewportQuadVS.glsl +10 -0
- data/app/assets/javascripts/Shaders/ViewportQuadVS.js +14 -0
- data/app/assets/javascripts/Shaders/package.json +6 -0
- data/app/assets/javascripts/ThirdParty/ThirdParty.profile.js +8 -0
- data/app/assets/javascripts/ThirdParty/Tween.js +678 -0
- data/app/assets/javascripts/ThirdParty/Uri.js +277 -0
- data/app/assets/javascripts/ThirdParty/measureText.js +197 -0
- data/app/assets/javascripts/ThirdParty/package.json +6 -0
- data/app/assets/javascripts/ThirdParty/sprintf.js +319 -0
- data/app/assets/javascripts/ThirdParty/when.js +748 -0
- data/app/assets/javascripts/Widgets/Dojo/CesiumViewerWidget.css +175 -0
- data/app/assets/javascripts/Widgets/Dojo/CesiumViewerWidget.html +52 -0
- data/app/assets/javascripts/Widgets/Dojo/CesiumViewerWidget.js +1237 -0
- data/app/assets/javascripts/Widgets/Dojo/CesiumWidget.html +4 -0
- data/app/assets/javascripts/Widgets/Dojo/CesiumWidget.js +349 -0
- data/app/assets/javascripts/Widgets/Dojo/TimelineWidget.css +1 -0
- data/app/assets/javascripts/Widgets/Dojo/TimelineWidget.js +47 -0
- data/app/assets/javascripts/Widgets/Dojo/checkForChromeFrame.js +71 -0
- data/app/assets/javascripts/Widgets/Images/Bing_Logo_51x19_White.png +0 -0
- data/app/assets/javascripts/Widgets/Images/Cesium_Logo_overlay.png +0 -0
- data/app/assets/javascripts/Widgets/Images/TimelineIcons.png +0 -0
- data/app/assets/javascripts/Widgets/Images/ajax-loader.gif +0 -0
- data/app/assets/javascripts/Widgets/Images/animationBar.png +0 -0
- data/app/assets/javascripts/Widgets/Images/viewControlBar.png +0 -0
- data/app/assets/javascripts/Widgets/Timeline.css +113 -0
- data/app/assets/javascripts/Widgets/Timeline.js +629 -0
- data/app/assets/javascripts/Widgets/TimelineHighlightRange.js +51 -0
- data/app/assets/javascripts/Widgets/TimelineTrack.js +54 -0
- data/app/assets/javascripts/Widgets/Widgets.profile.js +8 -0
- data/app/assets/javascripts/Widgets/package.json +6 -0
- data/app/assets/javascripts/Workers/Workers.profile.js +8 -0
- data/app/assets/javascripts/Workers/cesiumWorkerBootstrapper.js +2015 -0
- data/app/assets/javascripts/Workers/createTaskProcessorWorker.js +55 -0
- data/app/assets/javascripts/Workers/createVerticesFromExtent.js +24 -0
- data/app/assets/javascripts/Workers/package.json +6 -0
- data/app/assets/javascripts/copyrightHeader.js +22 -0
- data/app/assets/javascripts/main.js +10 -0
- data/app/assets/stylesheets/cesium.css +4 -0
- data/app/controllers/cesium_controller.rb +4 -0
- data/app/helpers/cesium_helper.rb +2 -0
- data/app/views/cesium/index.html.erb +3 -0
- data/config/routes.rb +3 -0
- data/lib/cesium.rb +4 -0
- data/lib/cesium/engine.rb +4 -0
- data/lib/cesium/version.rb +3 -0
- data/lib/tasks/cesium_tasks.rake +4 -0
- data/test/cesium_test.rb +7 -0
- data/test/dummy/README.rdoc +261 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/javascripts/adapters/jquery-adapter.js.coffee +4 -0
- data/test/dummy/app/assets/javascripts/app.js.coffee +11 -0
- data/test/dummy/app/assets/javascripts/application.js.coffee +73 -0
- data/test/dummy/app/assets/stylesheets/application.css +12 -0
- data/test/dummy/app/controllers/application_controller.rb +4 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/views/layouts/application.html.erb +21 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +59 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +37 -0
- data/test/dummy/config/environments/production.rb +67 -0
- data/test/dummy/config/environments/test.rb +37 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +15 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/requirejs.yml +10 -0
- data/test/dummy/config/routes.rb +3 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +25 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/rails +6 -0
- data/test/functional/cesium_controller_test.rb +9 -0
- data/test/integration/navigation_test.rb +10 -0
- data/test/test_helper.rb +15 -0
- data/test/unit/helpers/cesium_helper_test.rb +4 -0
- metadata +641 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define(['../Core/Enumeration'], function(Enumeration) {
|
|
3
|
+
"use strict";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* DOC_TBA
|
|
7
|
+
*
|
|
8
|
+
* @exports CullFace
|
|
9
|
+
*/
|
|
10
|
+
var CullFace = {
|
|
11
|
+
/**
|
|
12
|
+
* DOC_TBA
|
|
13
|
+
*
|
|
14
|
+
* @constant
|
|
15
|
+
* @type {Enumeration}
|
|
16
|
+
*/
|
|
17
|
+
FRONT : new Enumeration(0x0404, 'FRONT'),
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* DOC_TBA
|
|
21
|
+
*
|
|
22
|
+
* @constant
|
|
23
|
+
* @type {Enumeration}
|
|
24
|
+
*/
|
|
25
|
+
BACK : new Enumeration(0x0405, 'BACK'),
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* DOC_TBA
|
|
29
|
+
*
|
|
30
|
+
* @constant
|
|
31
|
+
* @type {Enumeration}
|
|
32
|
+
*/
|
|
33
|
+
FRONT_AND_BACK : new Enumeration(0x0408, 'FRONT_AND_BACK'),
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* DOC_TBA
|
|
37
|
+
*
|
|
38
|
+
* @param cullFace
|
|
39
|
+
*
|
|
40
|
+
* @returns {Boolean}
|
|
41
|
+
*/
|
|
42
|
+
validate : function(cullFace) {
|
|
43
|
+
return ((cullFace === CullFace.FRONT) ||
|
|
44
|
+
(cullFace === CullFace.BACK) ||
|
|
45
|
+
(cullFace === CullFace.FRONT_AND_BACK));
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
return CullFace;
|
|
50
|
+
});
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define(['../Core/Enumeration'], function(Enumeration) {
|
|
3
|
+
"use strict";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* DOC_TBA
|
|
7
|
+
*
|
|
8
|
+
* @exports DepthFunction
|
|
9
|
+
*/
|
|
10
|
+
var DepthFunction = {
|
|
11
|
+
/**
|
|
12
|
+
* DOC_TBA
|
|
13
|
+
*
|
|
14
|
+
* @constant
|
|
15
|
+
* @type {Enumeration}
|
|
16
|
+
*/
|
|
17
|
+
NEVER : new Enumeration(0x0200, 'NEVER'),
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* DOC_TBA
|
|
21
|
+
*
|
|
22
|
+
* @constant
|
|
23
|
+
* @type {Enumeration}
|
|
24
|
+
*/
|
|
25
|
+
LESS : new Enumeration(0x0201, 'LESS'),
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* DOC_TBA
|
|
29
|
+
*
|
|
30
|
+
* @constant
|
|
31
|
+
* @type {Enumeration}
|
|
32
|
+
*/
|
|
33
|
+
EQUAL : new Enumeration(0x0202, 'EQUAL'),
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* DOC_TBA
|
|
37
|
+
*
|
|
38
|
+
* @constant
|
|
39
|
+
* @type {Enumeration}
|
|
40
|
+
*/
|
|
41
|
+
LESS_OR_EQUAL : new Enumeration(0x0203, 'LEQUAL'),
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* DOC_TBA
|
|
45
|
+
*
|
|
46
|
+
* @constant
|
|
47
|
+
* @type {Enumeration}
|
|
48
|
+
*/
|
|
49
|
+
GREATER : new Enumeration(0x0204, 'GREATER'),
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* DOC_TBA
|
|
53
|
+
*
|
|
54
|
+
* @constant
|
|
55
|
+
* @type {Enumeration}
|
|
56
|
+
*/
|
|
57
|
+
NOT_EQUAL : new Enumeration(0x0205, 'NOTEQUAL'),
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* DOC_TBA
|
|
61
|
+
*
|
|
62
|
+
* @constant
|
|
63
|
+
* @type {Enumeration}
|
|
64
|
+
*/
|
|
65
|
+
GREATER_OR_EQUAL : new Enumeration(0x0206, 'GEQUAL'),
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* DOC_TBA
|
|
69
|
+
*
|
|
70
|
+
* @constant
|
|
71
|
+
* @type {Enumeration}
|
|
72
|
+
*/
|
|
73
|
+
ALWAYS : new Enumeration(0x0207, 'ALWAYS'),
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* DOC_TBA
|
|
77
|
+
*
|
|
78
|
+
* @param depthFunction
|
|
79
|
+
*
|
|
80
|
+
* @returns {Boolean}
|
|
81
|
+
*/
|
|
82
|
+
validate : function(depthFunction) {
|
|
83
|
+
return ((depthFunction === DepthFunction.NEVER) ||
|
|
84
|
+
(depthFunction === DepthFunction.LESS) ||
|
|
85
|
+
(depthFunction === DepthFunction.EQUAL) ||
|
|
86
|
+
(depthFunction === DepthFunction.LESS_OR_EQUAL) ||
|
|
87
|
+
(depthFunction === DepthFunction.GREATER) ||
|
|
88
|
+
(depthFunction === DepthFunction.NOT_EQUAL) ||
|
|
89
|
+
(depthFunction === DepthFunction.GREATER_OR_EQUAL) ||
|
|
90
|
+
(depthFunction === DepthFunction.ALWAYS));
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
return DepthFunction;
|
|
95
|
+
});
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define(['../Core/DeveloperError'], function(DeveloperError) {
|
|
3
|
+
"use strict";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Represents a command to the renderer for drawing.
|
|
7
|
+
*
|
|
8
|
+
* @alias Command
|
|
9
|
+
* @constructor
|
|
10
|
+
*/
|
|
11
|
+
var DrawCommand = function() {
|
|
12
|
+
/**
|
|
13
|
+
* The bounding volume of the geometry.
|
|
14
|
+
* @type DOC_TBA
|
|
15
|
+
*/
|
|
16
|
+
this.boundingVolume = undefined;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* The transformation from the geometry in model space to world space.
|
|
20
|
+
* @type Matrix4
|
|
21
|
+
*/
|
|
22
|
+
this.modelMatrix = undefined;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* The type of geometry in the vertex array.
|
|
26
|
+
* @type PrimitiveType
|
|
27
|
+
*/
|
|
28
|
+
this.primitiveType = undefined;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* The vertex array.
|
|
32
|
+
* @type VertexArray
|
|
33
|
+
*/
|
|
34
|
+
this.vertexArray = undefined;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* The number of vertices to draw in the vertex array.
|
|
38
|
+
* @type Number
|
|
39
|
+
*/
|
|
40
|
+
this.count = undefined;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* The offset to start drawing in the vertex array.
|
|
44
|
+
* @type Number
|
|
45
|
+
*/
|
|
46
|
+
this.offset = undefined;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* The shader program to apply.
|
|
50
|
+
* @type ShaderProgram
|
|
51
|
+
*/
|
|
52
|
+
this.shaderProgram = undefined;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* An object with functions whose names match the uniforms in the shader program
|
|
56
|
+
* and return values to set those uniforms.
|
|
57
|
+
* @type Object
|
|
58
|
+
*/
|
|
59
|
+
this.uniformMap = undefined;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* The render state.
|
|
63
|
+
* @type Object
|
|
64
|
+
*
|
|
65
|
+
* @see Context#createRenderState
|
|
66
|
+
*/
|
|
67
|
+
this.renderState = undefined;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* The framebuffer to draw to.
|
|
71
|
+
* @type Framebuffer
|
|
72
|
+
*/
|
|
73
|
+
this.framebuffer = undefined;
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Specifies if this command is only to be executed in the frustum closest
|
|
77
|
+
* to the eye containing the bounding volume. Defaults to <code>false</code>.
|
|
78
|
+
* @type Boolean
|
|
79
|
+
*/
|
|
80
|
+
this.executeInClosestFrustum = false;
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Executes the draw command.
|
|
85
|
+
*
|
|
86
|
+
* @memberof DrawCommand
|
|
87
|
+
*
|
|
88
|
+
* @param {Context} context The renderer context in which to draw.
|
|
89
|
+
* @param {Framebuffer} [framebuffer] The framebuffer to which to draw if one is not specified by the command.
|
|
90
|
+
*/
|
|
91
|
+
DrawCommand.prototype.execute = function(context, framebuffer) {
|
|
92
|
+
context.draw(this, framebuffer);
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
return DrawCommand;
|
|
96
|
+
});
|
|
@@ -0,0 +1,435 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'../Core/DeveloperError',
|
|
4
|
+
'../Core/destroyObject',
|
|
5
|
+
'./PixelFormat'
|
|
6
|
+
], function(
|
|
7
|
+
DeveloperError,
|
|
8
|
+
destroyObject,
|
|
9
|
+
PixelFormat) {
|
|
10
|
+
"use strict";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* A framebuffer is a target for draw and clear calls. It can contain color, depth, and stencil attachments
|
|
14
|
+
* that are written to in response to these calls. If the attachments are textures, they can be read in
|
|
15
|
+
* later rendering passes.
|
|
16
|
+
*
|
|
17
|
+
* @alias Framebuffer
|
|
18
|
+
*
|
|
19
|
+
* @see Context#createFramebuffer
|
|
20
|
+
*
|
|
21
|
+
* @internalConstructor
|
|
22
|
+
*/
|
|
23
|
+
var Framebuffer = function(gl, description) {
|
|
24
|
+
this._gl = gl;
|
|
25
|
+
this._framebuffer = gl.createFramebuffer();
|
|
26
|
+
|
|
27
|
+
this._colorTexture = undefined;
|
|
28
|
+
this._colorRenderbuffer = undefined;
|
|
29
|
+
this._depthTexture = undefined;
|
|
30
|
+
this._depthRenderbuffer = undefined;
|
|
31
|
+
this._stencilRenderbuffer = undefined;
|
|
32
|
+
this._depthStencilTexture = undefined;
|
|
33
|
+
this._depthStencilRenderbuffer = undefined;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* When true, the framebuffer owns its attachments so they will be destroyed when
|
|
37
|
+
* {@link Framebuffer#destroy} is called or when a new attachment is assigned
|
|
38
|
+
* to an attachment point.
|
|
39
|
+
*
|
|
40
|
+
* @type Boolean
|
|
41
|
+
* @default true
|
|
42
|
+
*
|
|
43
|
+
* @see Framebuffer#destroy
|
|
44
|
+
*/
|
|
45
|
+
this.destroyAttachments = true;
|
|
46
|
+
|
|
47
|
+
if (description) {
|
|
48
|
+
// Throw if a texture and renderbuffer are attached to the same point. This won't
|
|
49
|
+
// cause a WebGL error (because only one will be attached), but is likely a developer error.
|
|
50
|
+
|
|
51
|
+
if (description.colorTexture && description.colorRenderbuffer) {
|
|
52
|
+
throw new DeveloperError('Cannot have both a color texture and color renderbuffer attachment.');
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
if (description.depthTexture && description.depthRenderbuffer) {
|
|
56
|
+
throw new DeveloperError('Cannot have both a depth texture and depth renderbuffer attachment.');
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
if (description.depthStencilTexture && description.depthStencilRenderbuffer) {
|
|
60
|
+
throw new DeveloperError('Cannot have both a depth-stencil texture and depth-stencil renderbuffer attachment.');
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// Avoid errors defined in Section 6.5 of the WebGL spec
|
|
64
|
+
var depthAttachment = (description.depthTexture || description.depthRenderbuffer);
|
|
65
|
+
var depthStencilAttachment = (description.depthStencilTexture || description.depthStencilRenderbuffer);
|
|
66
|
+
|
|
67
|
+
if (depthAttachment && depthStencilAttachment) {
|
|
68
|
+
throw new DeveloperError('Cannot have both a depth and depth-stencil attachment.');
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if (description.stencilRenderbuffer && depthStencilAttachment) {
|
|
72
|
+
throw new DeveloperError('Cannot have both a stencil and depth-stencil attachment.');
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
if (depthAttachment && description.stencilRenderbuffer) {
|
|
76
|
+
throw new DeveloperError('Cannot have both a depth and stencil attachment.');
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
///////////////////////////////////////////////////////////////////
|
|
80
|
+
|
|
81
|
+
if (description.colorTexture) {
|
|
82
|
+
this.setColorTexture(description.colorTexture);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
if (description.colorRenderbuffer) {
|
|
86
|
+
this.setColorRenderbuffer(description.colorRenderbuffer);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
if (description.depthTexture) {
|
|
90
|
+
this.setDepthTexture(description.depthTexture);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
if (description.depthRenderbuffer) {
|
|
94
|
+
this.setDepthRenderbuffer(description.depthRenderbuffer);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
if (description.stencilRenderbuffer) {
|
|
98
|
+
this.setStencilRenderbuffer(description.stencilRenderbuffer);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
if (description.depthStencilTexture) {
|
|
102
|
+
this.setDepthStencilTexture(description.depthStencilTexture);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
if (description.depthStencilRenderbuffer) {
|
|
106
|
+
this.setDepthStencilRenderbuffer(description.depthStencilRenderbuffer);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
Framebuffer.prototype._bind = function() {
|
|
112
|
+
var gl = this._gl;
|
|
113
|
+
gl.bindFramebuffer(gl.FRAMEBUFFER, this._framebuffer);
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
Framebuffer.prototype._unBind = function() {
|
|
117
|
+
var gl = this._gl;
|
|
118
|
+
gl.bindFramebuffer(gl.FRAMEBUFFER, null);
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
function attachTexture(framebuffer, attachment, texture) {
|
|
122
|
+
framebuffer._bind();
|
|
123
|
+
var gl = framebuffer._gl;
|
|
124
|
+
|
|
125
|
+
if (texture) {
|
|
126
|
+
gl.framebufferTexture2D(gl.FRAMEBUFFER, attachment, texture._getTarget(), texture._getTexture(), 0);
|
|
127
|
+
} else {
|
|
128
|
+
gl.framebufferTexture2D(gl.FRAMEBUFFER, attachment, gl.TEXTURE_2D, null, 0);
|
|
129
|
+
}
|
|
130
|
+
framebuffer._unBind();
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
function attachRenderbuffer(framebuffer, attachment, renderbuffer) {
|
|
134
|
+
framebuffer._bind();
|
|
135
|
+
var gl = framebuffer._gl;
|
|
136
|
+
|
|
137
|
+
if (renderbuffer) {
|
|
138
|
+
gl.framebufferRenderbuffer(gl.FRAMEBUFFER, attachment, gl.RENDERBUFFER, renderbuffer._getRenderbuffer());
|
|
139
|
+
} else {
|
|
140
|
+
gl.framebufferRenderbuffer(gl.FRAMEBUFFER, attachment, gl.RENDERBUFFER, null);
|
|
141
|
+
}
|
|
142
|
+
framebuffer._unBind();
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
function destroyAttachment(framebuffer, attachment) {
|
|
146
|
+
if (framebuffer.destroyAttachments && attachment && attachment.destroy) {
|
|
147
|
+
attachment.destroy();
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Attaches a texture to the color attachment point. When this framebuffer is passed to a draw
|
|
153
|
+
* or clear call, the texture is the target of color output, e.g., <code>gl_FragColor</code>.
|
|
154
|
+
*
|
|
155
|
+
* @memberof Framebuffer
|
|
156
|
+
*
|
|
157
|
+
* @param {Texture} The texture to attach. <code>undefined</code> dettaches the current texture.
|
|
158
|
+
*
|
|
159
|
+
* @exception {DeveloperError} The color-texture pixel-format must be a color format.
|
|
160
|
+
* @exception {DeveloperError} This framebuffer was destroyed, i.e., destroy() was called.
|
|
161
|
+
*/
|
|
162
|
+
Framebuffer.prototype.setColorTexture = function(texture) {
|
|
163
|
+
if (texture && !PixelFormat.isColorFormat(texture.getPixelFormat())) {
|
|
164
|
+
throw new DeveloperError('The color-texture pixel-format must be a color format.');
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
attachTexture(this, this._gl.COLOR_ATTACHMENT0, texture);
|
|
168
|
+
destroyAttachment(this, this._colorTexture);
|
|
169
|
+
this._colorTexture = texture;
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Returns the color texture attached to this framebuffer.
|
|
174
|
+
*
|
|
175
|
+
* @memberof Framebuffer
|
|
176
|
+
*
|
|
177
|
+
* @returns {Texture} The color texture attached to this framebuffer.
|
|
178
|
+
*
|
|
179
|
+
* @exception {DeveloperError} This framebuffer was destroyed, i.e., destroy() was called.
|
|
180
|
+
*/
|
|
181
|
+
Framebuffer.prototype.getColorTexture = function() {
|
|
182
|
+
return this._colorTexture;
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Prefer {@link Framebuffer#setColorTexture}.
|
|
187
|
+
*
|
|
188
|
+
* @memberof Framebuffer
|
|
189
|
+
*
|
|
190
|
+
* @exception {DeveloperError} This framebuffer was destroyed, i.e., destroy() was called.
|
|
191
|
+
*/
|
|
192
|
+
Framebuffer.prototype.setColorRenderbuffer = function(renderbuffer) {
|
|
193
|
+
attachRenderbuffer(this, this._gl.COLOR_ATTACHMENT0, renderbuffer);
|
|
194
|
+
destroyAttachment(this, this._colorRenderbuffer);
|
|
195
|
+
this._colorRenderbuffer = renderbuffer;
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* Returns the color renderbuffer attached to this framebuffer.
|
|
200
|
+
*
|
|
201
|
+
* @memberof Framebuffer
|
|
202
|
+
*
|
|
203
|
+
* @returns {Texture} The color renderbuffer attached to this framebuffer.
|
|
204
|
+
*
|
|
205
|
+
* @exception {DeveloperError} This framebuffer was destroyed, i.e., destroy() was called.
|
|
206
|
+
*/
|
|
207
|
+
Framebuffer.prototype.getColorRenderbuffer = function() {
|
|
208
|
+
return this._colorRenderbuffer;
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Attaches a texture to the depth attachment point. When this framebuffer is passed to a draw
|
|
213
|
+
* or clear call, the texture is the target of depth output.
|
|
214
|
+
*
|
|
215
|
+
* @memberof Framebuffer
|
|
216
|
+
*
|
|
217
|
+
* @param {Texture} The texture to attach. <code>undefined</code> dettaches the current texture.
|
|
218
|
+
*
|
|
219
|
+
* @exception {DeveloperError} The depth-texture pixel-format must be DEPTH_COMPONENT.
|
|
220
|
+
* @exception {DeveloperError} This framebuffer was destroyed, i.e., destroy() was called.
|
|
221
|
+
*/
|
|
222
|
+
Framebuffer.prototype.setDepthTexture = function(texture) {
|
|
223
|
+
if (texture && (texture.getPixelFormat() !== PixelFormat.DEPTH_COMPONENT)) {
|
|
224
|
+
throw new DeveloperError('The depth-texture pixel-format must be DEPTH_COMPONENT.');
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
attachTexture(this, this._gl.DEPTH_ATTACHMENT, texture);
|
|
228
|
+
destroyAttachment(this, this._depthTexture);
|
|
229
|
+
this._depthTexture = texture;
|
|
230
|
+
};
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* Returns the depth texture attached to this framebuffer.
|
|
234
|
+
*
|
|
235
|
+
* @memberof Framebuffer
|
|
236
|
+
*
|
|
237
|
+
* @returns {Texture} The depth texture attached to this framebuffer.
|
|
238
|
+
*
|
|
239
|
+
* @exception {DeveloperError} This framebuffer was destroyed, i.e., destroy() was called.
|
|
240
|
+
*/
|
|
241
|
+
Framebuffer.prototype.getDepthTexture = function() {
|
|
242
|
+
return this._depthTexture;
|
|
243
|
+
};
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* Prefer {@link Framebuffer#setDepthTexture}.
|
|
247
|
+
*
|
|
248
|
+
* @memberof Framebuffer
|
|
249
|
+
*
|
|
250
|
+
* @exception {DeveloperError} This framebuffer was destroyed, i.e., destroy() was called.
|
|
251
|
+
*/
|
|
252
|
+
Framebuffer.prototype.setDepthRenderbuffer = function(renderbuffer) {
|
|
253
|
+
attachRenderbuffer(this, this._gl.DEPTH_ATTACHMENT, renderbuffer);
|
|
254
|
+
destroyAttachment(this, this._depthRenderbuffer);
|
|
255
|
+
this._depthRenderbuffer = renderbuffer;
|
|
256
|
+
};
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* Returns the depth renderbuffer attached to this framebuffer.
|
|
260
|
+
*
|
|
261
|
+
* @memberof Framebuffer
|
|
262
|
+
*
|
|
263
|
+
* @returns {Texture} The depth renderbuffer attached to this framebuffer.
|
|
264
|
+
*
|
|
265
|
+
* @exception {DeveloperError} This framebuffer was destroyed, i.e., destroy() was called.
|
|
266
|
+
*/
|
|
267
|
+
Framebuffer.prototype.getDepthRenderbuffer = function() {
|
|
268
|
+
return this._depthRenderbuffer;
|
|
269
|
+
};
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* Prefer {@link Framebuffer#setDepthStencilTexture}.
|
|
273
|
+
*
|
|
274
|
+
* @memberof Framebuffer
|
|
275
|
+
*
|
|
276
|
+
* @exception {DeveloperError} This framebuffer was destroyed, i.e., destroy() was called.
|
|
277
|
+
*/
|
|
278
|
+
Framebuffer.prototype.setStencilRenderbuffer = function(renderbuffer) {
|
|
279
|
+
attachRenderbuffer(this, this._gl.STENCIL_ATTACHMENT, renderbuffer);
|
|
280
|
+
destroyAttachment(this, this._stencilRenderbuffer);
|
|
281
|
+
this._stencilRenderbuffer = renderbuffer;
|
|
282
|
+
};
|
|
283
|
+
|
|
284
|
+
/**
|
|
285
|
+
* Returns the stencil renderbuffer attached to this framebuffer.
|
|
286
|
+
*
|
|
287
|
+
* @memberof Framebuffer
|
|
288
|
+
*
|
|
289
|
+
* @returns {Texture} The stencil renderbuffer attached to this framebuffer.
|
|
290
|
+
*
|
|
291
|
+
* @exception {DeveloperError} This framebuffer was destroyed, i.e., destroy() was called.
|
|
292
|
+
*/
|
|
293
|
+
Framebuffer.prototype.getStencilRenderbuffer = function() {
|
|
294
|
+
return this._stencilRenderbuffer;
|
|
295
|
+
};
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* Attaches a texture to the depth-stencil attachment point. When this framebuffer is passed to a draw
|
|
299
|
+
* or clear call, the texture is the target of depth and stencil output.
|
|
300
|
+
*
|
|
301
|
+
* @memberof Framebuffer
|
|
302
|
+
*
|
|
303
|
+
* @param {Texture} The texture to attach. <code>undefined</code> dettaches the current texture.
|
|
304
|
+
*
|
|
305
|
+
* @exception {DeveloperError} The depth-stencil-texture pixel-format must be DEPTH_STENCIL.
|
|
306
|
+
* @exception {DeveloperError} This framebuffer was destroyed, i.e., destroy() was called.
|
|
307
|
+
*/
|
|
308
|
+
Framebuffer.prototype.setDepthStencilTexture = function(texture) {
|
|
309
|
+
if (texture && (texture.getPixelFormat() !== PixelFormat.DEPTH_STENCIL)) {
|
|
310
|
+
throw new DeveloperError('The depth-stencil pixel-format must be DEPTH_STENCIL.');
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
attachTexture(this, this._gl.DEPTH_STENCIL_ATTACHMENT, texture);
|
|
314
|
+
destroyAttachment(this, this._depthStencilTexture);
|
|
315
|
+
this._depthStencilTexture = texture;
|
|
316
|
+
};
|
|
317
|
+
|
|
318
|
+
/**
|
|
319
|
+
* Returns the depth-stencil texture attached to this framebuffer.
|
|
320
|
+
*
|
|
321
|
+
* @memberof Framebuffer
|
|
322
|
+
*
|
|
323
|
+
* @returns {Texture} The depth-stencil texture attached to this framebuffer.
|
|
324
|
+
*
|
|
325
|
+
* @exception {DeveloperError} This framebuffer was destroyed, i.e., destroy() was called.
|
|
326
|
+
*/
|
|
327
|
+
Framebuffer.prototype.getDepthStencilTexture = function() {
|
|
328
|
+
return this._depthStencilTexture;
|
|
329
|
+
};
|
|
330
|
+
|
|
331
|
+
/**
|
|
332
|
+
* Prefer {@link Framebuffer#setDepthStencilTexture}.
|
|
333
|
+
*
|
|
334
|
+
* @memberof Framebuffer
|
|
335
|
+
*
|
|
336
|
+
* @exception {DeveloperError} This framebuffer was destroyed, i.e., destroy() was called.
|
|
337
|
+
*/
|
|
338
|
+
Framebuffer.prototype.setDepthStencilRenderbuffer = function(renderbuffer) {
|
|
339
|
+
attachRenderbuffer(this, this._gl.DEPTH_STENCIL_ATTACHMENT, renderbuffer);
|
|
340
|
+
destroyAttachment(this, this._depthStencilRenderbuffer);
|
|
341
|
+
this._depthStencilRenderbuffer = renderbuffer;
|
|
342
|
+
};
|
|
343
|
+
|
|
344
|
+
/**
|
|
345
|
+
* Returns the depth-stencil renderbuffer attached to this framebuffer.
|
|
346
|
+
*
|
|
347
|
+
* @memberof Framebuffer
|
|
348
|
+
*
|
|
349
|
+
* @returns {Texture} The depth-stencil renderbuffer attached to this framebuffer.
|
|
350
|
+
*
|
|
351
|
+
* @exception {DeveloperError} This framebuffer was destroyed, i.e., destroy() was called.
|
|
352
|
+
*/
|
|
353
|
+
Framebuffer.prototype.getDepthStencilRenderbuffer = function() {
|
|
354
|
+
return this._depthStencilRenderbuffer;
|
|
355
|
+
};
|
|
356
|
+
|
|
357
|
+
/**
|
|
358
|
+
* Returns true if the framebuffer has a depth attachment. Depth attachments include
|
|
359
|
+
* depth and depth-stencil textures, and depth and depth-stencil renderbuffers. When
|
|
360
|
+
* rendering to a framebuffer, a depth attachment is required for the depth test to have effect.
|
|
361
|
+
*
|
|
362
|
+
* @memberof Framebuffer
|
|
363
|
+
*
|
|
364
|
+
* @return {Boolean} Returns true if the framebuffer has a depth attachment; otherwise, false.
|
|
365
|
+
*
|
|
366
|
+
* @exception {DeveloperError} This framebuffer was destroyed, i.e., destroy() was called.
|
|
367
|
+
*/
|
|
368
|
+
Framebuffer.prototype.hasDepthAttachment = function() {
|
|
369
|
+
return !!(this.getDepthTexture() || this.getDepthRenderbuffer() || this.getDepthStencilTexture() || this.getDepthStencilRenderbuffer());
|
|
370
|
+
};
|
|
371
|
+
|
|
372
|
+
/**
|
|
373
|
+
* Returns true if this object was destroyed; otherwise, false.
|
|
374
|
+
* <br /><br />
|
|
375
|
+
* If this object was destroyed, it should not be used; calling any function other than
|
|
376
|
+
* <code>isDestroyed</code> will result in a {@link DeveloperError} exception.
|
|
377
|
+
*
|
|
378
|
+
* @memberof Framebuffer
|
|
379
|
+
*
|
|
380
|
+
* @return {Boolean} True if this object was destroyed; otherwise, false.
|
|
381
|
+
*
|
|
382
|
+
* @see Framebuffer#destroy
|
|
383
|
+
*/
|
|
384
|
+
Framebuffer.prototype.isDestroyed = function() {
|
|
385
|
+
return false;
|
|
386
|
+
};
|
|
387
|
+
|
|
388
|
+
/**
|
|
389
|
+
* Destroys the WebGL resources held by this object. Destroying an object allows for deterministic
|
|
390
|
+
* release of WebGL resources, instead of relying on the garbage collector to destroy this object.
|
|
391
|
+
* <br /><br />
|
|
392
|
+
* Framebuffer attachments are only destoryed if the framebuffer owns them, i.e., {@link destroyAttachments}
|
|
393
|
+
* is true.
|
|
394
|
+
* <br /><br />
|
|
395
|
+
* Once an object is destroyed, it should not be used; calling any function other than
|
|
396
|
+
* <code>isDestroyed</code> will result in a {@link DeveloperError} exception. Therefore,
|
|
397
|
+
* assign the return value (<code>undefined</code>) to the object as done in the example.
|
|
398
|
+
*
|
|
399
|
+
* @memberof Framebuffer
|
|
400
|
+
*
|
|
401
|
+
* @return {undefined}
|
|
402
|
+
*
|
|
403
|
+
* @exception {DeveloperError} This framebuffer was destroyed, i.e., destroy() was called.
|
|
404
|
+
*
|
|
405
|
+
* @see Framebuffer#isDestroyed
|
|
406
|
+
* @see Framebuffer#destroyAttachments
|
|
407
|
+
* @see <a href='http://www.khronos.org/opengles/sdk/2.0/docs/man/glDeleteFramebuffers.xml'>glDeleteFramebuffers</a>
|
|
408
|
+
* @see <a href='http://www.khronos.org/opengles/sdk/2.0/docs/man/glDeleteTextures.xml'>glDeleteTextures</a>
|
|
409
|
+
* @see <a href='http://www.khronos.org/opengles/sdk/2.0/docs/man/glDeleteRenderbuffers.xml'>glDeleteRenderbuffers</a>
|
|
410
|
+
*
|
|
411
|
+
* @example
|
|
412
|
+
* var texture = context.createTexture2D({ width : 1, height : 1 });
|
|
413
|
+
* framebuffer = context.createFramebuffer({ colorTexture : texture });
|
|
414
|
+
* // ...
|
|
415
|
+
* framebuffer = framebuffer.destroy();
|
|
416
|
+
* // texture is also destroyed.
|
|
417
|
+
*/
|
|
418
|
+
Framebuffer.prototype.destroy = function() {
|
|
419
|
+
if (this.destroyAttachments) {
|
|
420
|
+
// If the color texture is a cube map face, it is owned by the cube map, and will not be destroyed.
|
|
421
|
+
this._colorTexture = this._colorTexture && this._colorTexture.destroy && this._colorTexture.destroy();
|
|
422
|
+
this._colorRenderbuffer = this._colorRenderbuffer && this._colorRenderbuffer.destroy();
|
|
423
|
+
this._depthTexture = this._depthTexture && this._depthTexture.destroy();
|
|
424
|
+
this._depthRenderbuffer = this._depthRenderbuffer && this._depthRenderbuffer.destroy();
|
|
425
|
+
this._stencilRenderbuffer = this._stencilRenderbuffer && this._stencilRenderbuffer.destroy();
|
|
426
|
+
this._depthStencilTexture = this._depthStencilTexture && this._depthStencilTexture.destroy();
|
|
427
|
+
this._depthStencilRenderbuffer = this._depthStencilRenderbuffer && this._depthStencilRenderbuffer.destroy();
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
this._gl.deleteFramebuffer(this._framebuffer);
|
|
431
|
+
return destroyObject(this);
|
|
432
|
+
};
|
|
433
|
+
|
|
434
|
+
return Framebuffer;
|
|
435
|
+
});
|