135 lines
3.6 KiB
JavaScript
135 lines
3.6 KiB
JavaScript
|
|
defineSuite([
|
||
|
|
'Core/BoundingRectangle',
|
||
|
|
'Core/Color',
|
||
|
|
'Renderer/ClearCommand',
|
||
|
|
'Renderer/Framebuffer',
|
||
|
|
'Renderer/RenderState',
|
||
|
|
'Renderer/Texture',
|
||
|
|
'Specs/createContext'
|
||
|
|
], 'Renderer/Clear', function(
|
||
|
|
BoundingRectangle,
|
||
|
|
Color,
|
||
|
|
ClearCommand,
|
||
|
|
Framebuffer,
|
||
|
|
RenderState,
|
||
|
|
Texture,
|
||
|
|
createContext) {
|
||
|
|
'use strict';
|
||
|
|
|
||
|
|
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');
|