Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(48)

Side by Side Diff: third_party/WebKit/LayoutTests/fast/canvas/resources/canvas-Float32ImageData.js

Issue 2636533002: Revert of Implement color management for ImageData
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 function setF16Color(float32ImageData, i, f16Color) {
2 var s = i * 4;
3 float32ImageData[s] = f16Color[0];
4 float32ImageData[s + 1] = f16Color[1];
5 float32ImageData[s + 2] = f16Color[2];
6 float32ImageData[s + 3] = f16Color[3];
7 }
8
9 function getF16Color(float32ImageData, i) {
10 var result = [];
11 var s = i * 4;
12 for (var j = 0; j < 4; j++) {
13 result[j] = float32ImageData[s + j];
14 }
15 return result;
16 }
17
18 function compareF16Colors(f16Color1, f16Color2) {
19 for (var j = 0; j < 4; j++)
20 if (f16Color1[j] != f16Color2[j])
21 return false;
22 return true;
23 }
24
25 test(function() {
26
27 float32ImageData = new Float32ImageData(100, 50);
28 assert_equals(float32ImageData.width, 100,
29 "The width of the float32ImageData should be the width we passed to the co nstructor.");
30 assert_equals(float32ImageData.height, 50,
31 "The height of the float32ImageData should be the height we passed to the constructor.");
32
33 var f16ColorData = getF16Color(float32ImageData.data, 4);
34 assert_equals(f16ColorData[0], 0,
35 "The default ImageData color is transparent black.");
36 assert_equals(f16ColorData[1], 0,
37 "The default ImageData color is transparent black.");
38 assert_equals(f16ColorData[2], 0,
39 "The default ImageData color is transparent black.");
40 assert_equals(f16ColorData[3], 0,
41 "The default ImageData color is transparent black.");
42
43 var testColor = new Float32Array([0x00003c00, 0x00003c01, 0x00003c02, 0x00003c 03]);
44 setF16Color(float32ImageData.data, 4, testColor);
45 f16ColorData = getF16Color(float32ImageData.data, 4);
46 assert_equals(f16ColorData[0], 0x00003c00,
47 "The red component of f16 color is the value we set.");
48 assert_equals(f16ColorData[1], 0x00003c01,
49 "The green component of f16 color is the value we set.");
50 assert_equals(f16ColorData[2], 0x00003c02,
51 "The blue component of f16 color is the value we set.");
52 assert_equals(f16ColorData[3], 0x00003c03,
53 "The alpha component of f16 color is the value we set.");
54
55 assert_throws(null, function() {new Float32ImageData(10);},
56 "Float32ImageData constructor requires both width and height.");
57 assert_throws("IndexSizeError", function() {new Float32ImageData(0,10);},
58 "Float32ImageData width must be greater than zero.");
59 assert_throws("IndexSizeError", function() {new Float32ImageData(10,0);},
60 "Float32ImageData height must be greater than zero.");
61 assert_throws("IndexSizeError", function() {new Float32ImageData('width', 'hei ght');},
62 "Float32ImageData width and height must be numbers.");
63 assert_throws("IndexSizeError", function() {new Float32ImageData(1 << 31, 1 << 31);},
64 "Float32ImageData width multiplied by height must be less than 2^30 to avo id buffer size overflow.");
65
66 assert_throws(null, function() {new Float32ImageData(new Float32Array(0));},
67 "The Float32Array passed to the constructor cannot have a length of zero." );
68 assert_throws("IndexSizeError", function() {new Float32ImageData(new Float32Ar ray(27), 2);},
69 "The size of Float32Array passed to the constructor must be divisible by 4 * width.");
70 assert_throws("IndexSizeError", function() {new Float32ImageData(new Float32Ar ray(28), 7, 0);},
71 "The size of Float32Array passed to the constructor must be equal to 4 * w idth * height.");
72 assert_throws(null, function() {new Float32ImageData(self, 4, 4);},
73 "The object passed to the constructor as data array should be of type Floa t32Array.");
74 assert_throws(null, function() {new Float32ImageData(null, 4, 4);},
75 "The object passed to the constructor as data array should be of type Floa t32Array.");
76 assert_throws("IndexSizeError", function() {new Float32ImageData(float32ImageD ata.data, 0);},
77 "The size of Float32Array passed to the constructor must be divisible by 4 * width.");
78 assert_throws("IndexSizeError", function() {new Float32ImageData(float32ImageD ata.data, 13);},
79 "The size of Float32Array passed to the constructor must be divisible by 4 * width.");
80 assert_throws("IndexSizeError", function() {new Float32ImageData(float32ImageD ata.data, 1 << 31);},
81 "The size of Float32Array passed to the constructor must be divisible by 4 * width.");
82 assert_throws("IndexSizeError", function() {new Float32ImageData(float32ImageD ata.data, 'biggish');},
83 "The width parameter must be a number.");
84 assert_throws("IndexSizeError", function() {new Float32ImageData(float32ImageD ata.data, 1 << 24, 1 << 31);},
85 "Float32ImageData width multiplied by height must be less than 2^30 to avo id buffer size overflow.");
86 assert_throws("IndexSizeError", function() {new Float32ImageData(float32ImageD ata.data, 1 << 31, 1 << 24);},
87 "Float32ImageData width multiplied by height must be less than 2^30 to avo id buffer size overflow.");
88 assert_equals((new Float32ImageData(new Float32Array(28), 7)).height, 1,
89 "The height must be equal to size of the data array divided by 4 * width." );
90
91 float32ImageDataFromData = new Float32ImageData(float32ImageData.data, 100);
92 assert_equals(float32ImageDataFromData.width, 100,
93 "The width of the float32ImageDataFromData should be the same as that of f loat32ImageData.");
94 assert_equals(float32ImageDataFromData.height, 50,
95 "The height of the float32ImageDataFromData should be the same as that of float32ImageData.");
96 assert_true(float32ImageDataFromData.data == float32ImageData.data,
97 "The pixel data buffer of float32ImageDataFromData should be the same as t hat of float32ImageData.");
98 assert_true(compareF16Colors(getF16Color(float32ImageDataFromData.data, 10),
99 getF16Color(float32ImageData.data, 10)),
100 "The color of a pixel from float32ImageDataFromData should be the same as that of float32ImageData.");
101 setF16Color(float32ImageData.data, 10, testColor);
102 assert_true(compareF16Colors(getF16Color(float32ImageDataFromData.data, 10),
103 getF16Color(float32ImageData.data, 10)),
104 "Setting the color of a pixel from float32ImageData must cascade to the sa me pixel of float32ImageDataFromData.");
105
106 var data = new Float32Array(400);
107 data[22] = 129;
108 float32ImageDataFromData = new Float32ImageData(data, 20, 5);
109 assert_equals(float32ImageDataFromData.width, 20,
110 "The width of the float32ImageData should be the width we passed to the co nstructor.");
111 assert_equals(float32ImageDataFromData.height, 5,
112 "The height of the Float32ImageData must be equal to size of the Float32Ar ray divided by 4 * width.");
113 assert_true(float32ImageDataFromData.data == data,
114 "The pixel data buffer of float32ImageDataFromData should be the same buff er passed to the constructor.");
115 assert_true(compareF16Colors(getF16Color(float32ImageDataFromData.data, 2), ge tF16Color(data, 2)),
116 "The pixel data of float32ImageDataFromData should be the same as that of the buffer passed to the constructor.");
117 setF16Color(float32ImageDataFromData.data, 2, testColor);
118 assert_true(compareF16Colors(getF16Color(float32ImageDataFromData.data, 2), ge tF16Color(data, 2)),
119 "Setting the color of a pixel from float32ImageDataFromData must cascade t o the same pixel of the buffer passed to the constructor.");
120
121 }, 'This test examines the correct behavior of Float32ImageData API.');
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698