| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 /** | 5 /** |
| 6 * Loads and resizes an image. | 6 * Loads and resizes an image. |
| 7 * @constructor | 7 * @constructor |
| 8 */ | 8 */ |
| 9 function ImageLoader() { | 9 function ImageLoader() { |
| 10 /** | 10 /** |
| 11 * Persistent cache object. | 11 * Persistent cache object. |
| 12 * @type {Cache} | 12 * @type {ImageCache} |
| 13 * @private | 13 * @private |
| 14 */ | 14 */ |
| 15 this.cache_ = new Cache(); | 15 this.cache_ = new ImageCache(); |
| 16 | 16 |
| 17 /** | 17 /** |
| 18 * Manages pending requests and runs them in order of priorities. | 18 * Manages pending requests and runs them in order of priorities. |
| 19 * @type {Scheduler} | 19 * @type {Scheduler} |
| 20 * @private | 20 * @private |
| 21 */ | 21 */ |
| 22 this.scheduler_ = new Scheduler(); | 22 this.scheduler_ = new Scheduler(); |
| 23 | 23 |
| 24 /** | 24 /** |
| 25 * Piex loader for RAW images. | 25 * Piex loader for RAW images. |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 98 * @private | 98 * @private |
| 99 */ | 99 */ |
| 100 ImageLoader.prototype.onMessage_ = function(senderId, request, callback) { | 100 ImageLoader.prototype.onMessage_ = function(senderId, request, callback) { |
| 101 var requestId = senderId + ':' + request.taskId; | 101 var requestId = senderId + ':' + request.taskId; |
| 102 if (request.cancel) { | 102 if (request.cancel) { |
| 103 // Cancel a task. | 103 // Cancel a task. |
| 104 this.scheduler_.remove(requestId); | 104 this.scheduler_.remove(requestId); |
| 105 return false; // No callback calls. | 105 return false; // No callback calls. |
| 106 } else { | 106 } else { |
| 107 // Create a request task and add it to the scheduler (queue). | 107 // Create a request task and add it to the scheduler (queue). |
| 108 var requestTask = new Request( | 108 var requestTask = new ImageRequest( |
| 109 requestId, this.cache_, this.piexLoader_, request, callback); | 109 requestId, this.cache_, this.piexLoader_, request, callback); |
| 110 this.scheduler_.add(requestTask); | 110 this.scheduler_.add(requestTask); |
| 111 return true; // Request will call the callback. | 111 return true; // Request will call the callback. |
| 112 } | 112 } |
| 113 }; | 113 }; |
| 114 | 114 |
| 115 /** | 115 /** |
| 116 * Returns the singleton instance. | 116 * Returns the singleton instance. |
| 117 * @return {ImageLoader} ImageLoader object. | 117 * @return {ImageLoader} ImageLoader object. |
| 118 */ | 118 */ |
| (...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 363 sB = sB <= 0.0031308 ? 12.92 * sB : 1.055 * Math.pow(sB, 1 / 2.4) - 0.055; | 363 sB = sB <= 0.0031308 ? 12.92 * sB : 1.055 * Math.pow(sB, 1 / 2.4) - 0.055; |
| 364 | 364 |
| 365 // Scale to [0, 255]. | 365 // Scale to [0, 255]. |
| 366 data[i] = Math.max(0, Math.min(255, sR * 255)); | 366 data[i] = Math.max(0, Math.min(255, sR * 255)); |
| 367 data[i + 1] = Math.max(0, Math.min(255, sG * 255)); | 367 data[i + 1] = Math.max(0, Math.min(255, sG * 255)); |
| 368 data[i + 2] = Math.max(0, Math.min(255, sB * 255)); | 368 data[i + 2] = Math.max(0, Math.min(255, sB * 255)); |
| 369 } | 369 } |
| 370 context.putImageData(imageData, 0, 0); | 370 context.putImageData(imageData, 0, 0); |
| 371 } | 371 } |
| 372 }; | 372 }; |
| OLD | NEW |