You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
134 lines
3.4 KiB
JavaScript
134 lines
3.4 KiB
JavaScript
import { BoundingRectangle } from "../../Source/Cesium.js";
|
|
import { Color } from "../../Source/Cesium.js";
|
|
import { ClearCommand } from "../../Source/Cesium.js";
|
|
import { Framebuffer } from "../../Source/Cesium.js";
|
|
import { RenderState } from "../../Source/Cesium.js";
|
|
import { Texture } from "../../Source/Cesium.js";
|
|
import createContext from "../createContext.js";
|
|
|
|
describe(
|
|
"Renderer/Clear",
|
|
function () {
|
|
var context;
|
|
|
|
beforeAll(function () {
|
|
context = createContext();
|
|
});
|
|
|
|
afterAll(function () {
|
|
context.destroyForSpecs();
|
|
});
|
|
|
|
it("default clear", function () {
|
|
ClearCommand.ALL.execute(context);
|
|
expect(context).toReadPixels([0, 0, 0, 255]);
|
|
});
|
|
|
|
it("clears to white", function () {
|
|
ClearCommand.ALL.execute(context);
|
|
expect(context).toReadPixels([0, 0, 0, 255]);
|
|
|
|
var command = new ClearCommand({
|
|
color: Color.WHITE,
|
|
});
|
|
command.execute(context);
|
|
expect(context).toReadPixels([255, 255, 255, 255]);
|
|
});
|
|
|
|
it("clears with a color mask", function () {
|
|
ClearCommand.ALL.execute(context);
|
|
expect(context).toReadPixels([0, 0, 0, 255]);
|
|
|
|
var command = new ClearCommand({
|
|
color: Color.WHITE,
|
|
renderState: RenderState.fromCache({
|
|
colorMask: {
|
|
red: true,
|
|
green: false,
|
|
blue: true,
|
|
alpha: true,
|
|
},
|
|
}),
|
|
});
|
|
command.execute(context);
|
|
expect(context).toReadPixels([255, 0, 255, 255]);
|
|
});
|
|
|
|
it("clears with scissor test", function () {
|
|
var command = new ClearCommand({
|
|
color: Color.WHITE,
|
|
});
|
|
|
|
command.execute(context);
|
|
expect(context).toReadPixels([255, 255, 255, 255]);
|
|
|
|
command.color = Color.BLACK;
|
|
command.renderState = RenderState.fromCache({
|
|
scissorTest: {
|
|
enabled: true,
|
|
rectangle: new BoundingRectangle(),
|
|
},
|
|
});
|
|
|
|
command.execute(context);
|
|
expect(context).toReadPixels([255, 255, 255, 255]);
|
|
|
|
command.renderState = RenderState.fromCache({
|
|
scissorTest: {
|
|
enabled: true,
|
|
rectangle: new BoundingRectangle(0, 0, 1, 1),
|
|
},
|
|
});
|
|
|
|
command.execute(context);
|
|
expect(context).toReadPixels([0, 0, 0, 255]);
|
|
});
|
|
|
|
it("clears a framebuffer color attachment", function () {
|
|
var colorTexture = new Texture({
|
|
context: context,
|
|
width: 1,
|
|
height: 1,
|
|
});
|
|
var framebuffer = new Framebuffer({
|
|
context: context,
|
|
colorTextures: [colorTexture],
|
|
});
|
|
|
|
var command = new ClearCommand({
|
|
color: new Color(0.0, 1.0, 0.0, 1.0),
|
|
framebuffer: framebuffer,
|
|
});
|
|
command.execute(context);
|
|
|
|
expect({
|
|
context: context,
|
|
framebuffer: framebuffer,
|
|
}).toReadPixels([0, 255, 0, 255]);
|
|
|
|
framebuffer = framebuffer.destroy();
|
|
});
|
|
|
|
it("fails to read pixels (width)", function () {
|
|
expect(function () {
|
|
expect(
|
|
context.readPixels({
|
|
width: -1,
|
|
})
|
|
).toEqual([0, 0, 0, 0]);
|
|
}).toThrowDeveloperError();
|
|
});
|
|
|
|
it("fails to read pixels (height)", function () {
|
|
expect(function () {
|
|
expect(
|
|
context.readPixels({
|
|
height: -1,
|
|
})
|
|
).toEqual([0, 0, 0, 0]);
|
|
}).toThrowDeveloperError();
|
|
});
|
|
},
|
|
"WebGL"
|
|
);
|