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.

120 lines
3.1 KiB
JavaScript

import { ContextLimits } from "../../Source/Cesium.js";
import { Renderbuffer } from "../../Source/Cesium.js";
import { RenderbufferFormat } from "../../Source/Cesium.js";
import createContext from "../createContext.js";
describe(
"Renderer/Renderbuffer",
function () {
var context;
var renderbuffer;
beforeAll(function () {
context = createContext();
});
afterAll(function () {
context.destroyForSpecs();
});
afterEach(function () {
renderbuffer = renderbuffer && renderbuffer.destroy();
});
it("creates", function () {
renderbuffer = new Renderbuffer({
context: context,
format: RenderbufferFormat.DEPTH_COMPONENT16,
width: 64,
height: 32,
});
expect(renderbuffer.format).toEqual(RenderbufferFormat.DEPTH_COMPONENT16);
expect(renderbuffer.width).toEqual(64);
expect(renderbuffer.height).toEqual(32);
});
it("creates with defaults", function () {
renderbuffer = new Renderbuffer({
context: context,
});
expect(renderbuffer.format).toEqual(RenderbufferFormat.RGBA4);
expect(renderbuffer.width).toEqual(context.canvas.clientWidth);
expect(renderbuffer.height).toEqual(context.canvas.clientHeight);
});
it("destroys", function () {
var r = new Renderbuffer({
context: context,
});
expect(r.isDestroyed()).toEqual(false);
r.destroy();
expect(r.isDestroyed()).toEqual(true);
});
it("throws when created with invalid format", function () {
expect(function () {
renderbuffer = new Renderbuffer({
context: context,
format: "invalid format",
});
}).toThrowDeveloperError();
});
it("throws when created with small width", function () {
expect(function () {
renderbuffer = new Renderbuffer({
context: context,
width: 0,
});
}).toThrowDeveloperError();
});
it("throws when created with large width", function () {
expect(function () {
renderbuffer = new Renderbuffer({
context: context,
width: ContextLimits.maximumRenderbufferSize + 1,
});
}).toThrowDeveloperError();
});
it("throws when created with small height", function () {
expect(function () {
renderbuffer = new Renderbuffer({
context: context,
height: 0,
});
}).toThrowDeveloperError();
});
it("throws when created with large height", function () {
expect(function () {
renderbuffer = new Renderbuffer({
context: context,
height: ContextLimits.maximumRenderbufferSize + 1,
});
}).toThrowDeveloperError();
});
it("throws when fails to destroy", function () {
var r = new Renderbuffer({
context: context,
});
r.destroy();
expect(function () {
r.destroy();
}).toThrowDeveloperError();
});
it("throws when there is no context", function () {
expect(function () {
return new Renderbuffer();
}).toThrowDeveloperError();
});
},
"WebGL"
);