Skip to content

Commit 3ed8959

Browse files
committed
GlobePrimitive tests
1 parent 3302245 commit 3ed8959

File tree

2 files changed

+172
-104
lines changed

2 files changed

+172
-104
lines changed

Specs/Scene/ClassificationPrimitiveSpec.js

+29-20
Original file line numberDiff line numberDiff line change
@@ -64,17 +64,8 @@ defineSuite([
6464
var primitive;
6565
var globePrimitive;
6666
var tilesetPrimitive;
67-
68-
beforeAll(function() {
69-
scene = createScene();
70-
scene.postProcessStages.fxaa.enabled = false;
71-
72-
ellipsoid = Ellipsoid.WGS84;
73-
});
74-
75-
afterAll(function() {
76-
scene.destroyForSpecs();
77-
});
67+
var reusableGlobePrimitive;
68+
var reusableTilesetPrimitive;
7869

7970
function viewCenter() {
8071
scene.camera.setView({ destination : rectangle });
@@ -88,7 +79,7 @@ defineSuite([
8879
scene.camera.setView({ destination : tilesetRectangle });
8980
}
9081

91-
function MockPrimitive(rectangle, pass) {
82+
function createPrimitive(rectangle, pass) {
9283
var renderState;
9384
if (pass === Pass.CESIUM_3D_TILE) {
9485
renderState = RenderState.fromCache({
@@ -101,7 +92,7 @@ defineSuite([
10192
}
10293
var depthColorAttribute = ColorGeometryInstanceAttribute.fromColor(new Color(0.0, 0.0, 1.0, 1.0));
10394
depthColor = depthColorAttribute.value;
104-
this._primitive = new Primitive({
95+
return new Primitive({
10596
geometryInstances : new GeometryInstance({
10697
geometry : new RectangleGeometry({
10798
ellipsoid : Ellipsoid.WGS84,
@@ -119,7 +110,10 @@ defineSuite([
119110
}),
120111
asynchronous : false
121112
});
113+
}
122114

115+
function MockPrimitive(primitive, pass) {
116+
this._primitive = primitive;
123117
this._pass = pass;
124118
}
125119

@@ -139,21 +133,36 @@ defineSuite([
139133
};
140134

141135
MockPrimitive.prototype.destroy = function() {
142-
this._primitive.destroy();
143136
return destroyObject(this);
144137
};
145138

146-
beforeEach(function() {
147-
scene.morphTo3D(0);
148-
scene.render(); // clear any afterRender commands
139+
beforeAll(function() {
140+
scene = createScene();
141+
scene.postProcessStages.fxaa.enabled = false;
142+
143+
ellipsoid = Ellipsoid.WGS84;
149144

150145
rectangle = Rectangle.fromDegrees(-75.0, 25.0, -70.0, 30.0);
151146
globeRectangle = Rectangle.fromDegrees(-75.0, 27.5, -70.0, 30.0);
152147
tilesetRectangle = Rectangle.fromDegrees(-75.0, 25.0, -70.0, 27.5);
153148

149+
reusableGlobePrimitive = createPrimitive(globeRectangle, Pass.GLOBE);
150+
reusableTilesetPrimitive = createPrimitive(tilesetRectangle, Pass.CESIUM_3D_TILE);
151+
});
152+
153+
afterAll(function() {
154+
reusableGlobePrimitive.destroy();
155+
reusableTilesetPrimitive.destroy();
156+
scene.destroyForSpecs();
157+
});
158+
159+
beforeEach(function() {
160+
scene.morphTo3D(0);
161+
scene.render(); // clear any afterRender commands
162+
154163
// wrap rectangle primitive so it gets executed during the globe pass or 3D Tiles pass to lay down depth
155-
globePrimitive = new MockPrimitive(globeRectangle, Pass.GLOBE);
156-
tilesetPrimitive = new MockPrimitive(tilesetRectangle, Pass.CESIUM_3D_TILE);
164+
globePrimitive = new MockPrimitive(reusableGlobePrimitive, Pass.GLOBE);
165+
tilesetPrimitive = new MockPrimitive(reusableTilesetPrimitive, Pass.CESIUM_3D_TILE);
157166

158167
var center = Rectangle.center(rectangle);
159168
var origin = ellipsoid.cartographicToCartesian(center);
@@ -1046,7 +1055,7 @@ defineSuite([
10461055
primitive.appearance = new MaterialAppearance();
10471056

10481057
expect(function() {
1049-
expectRender(boxColor);
1058+
expect(scene).toRender(boxColor);
10501059
}).toThrowDeveloperError();
10511060
});
10521061

0 commit comments

Comments
 (0)