OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #include "ui/gl/gl_image_memory.h" | 5 #include "ui/gl/gl_image_memory.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/numerics/safe_conversions.h" | 10 #include "base/numerics/safe_conversions.h" |
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
345 | 345 |
346 } // namespace | 346 } // namespace |
347 | 347 |
348 GLImageMemory::GLImageMemory(const gfx::Size& size, unsigned internalformat) | 348 GLImageMemory::GLImageMemory(const gfx::Size& size, unsigned internalformat) |
349 : size_(size), | 349 : size_(size), |
350 internalformat_(internalformat), | 350 internalformat_(internalformat), |
351 memory_(nullptr), | 351 memory_(nullptr), |
352 format_(gfx::BufferFormat::RGBA_8888), | 352 format_(gfx::BufferFormat::RGBA_8888), |
353 stride_(0) {} | 353 stride_(0) {} |
354 | 354 |
355 GLImageMemory::~GLImageMemory() { | 355 GLImageMemory::~GLImageMemory() {} |
356 DCHECK(!memory_); | |
357 } | |
358 | 356 |
359 bool GLImageMemory::Initialize(const unsigned char* memory, | 357 bool GLImageMemory::Initialize(const unsigned char* memory, |
360 gfx::BufferFormat format, | 358 gfx::BufferFormat format, |
361 size_t stride) { | 359 size_t stride) { |
362 if (!ValidInternalFormat(internalformat_)) { | 360 if (!ValidInternalFormat(internalformat_)) { |
363 LOG(ERROR) << "Invalid internalformat: " << internalformat_; | 361 LOG(ERROR) << "Invalid internalformat: " << internalformat_; |
364 return false; | 362 return false; |
365 } | 363 } |
366 | 364 |
367 if (!ValidFormat(format)) { | 365 if (!ValidFormat(format)) { |
368 LOG(ERROR) << "Invalid format: " << static_cast<int>(format); | 366 LOG(ERROR) << "Invalid format: " << static_cast<int>(format); |
369 return false; | 367 return false; |
370 } | 368 } |
371 | 369 |
372 if (stride < RowSizeForBufferFormat(size_.width(), format, 0) || stride & 3) { | 370 if (stride < RowSizeForBufferFormat(size_.width(), format, 0) || stride & 3) { |
373 LOG(ERROR) << "Invalid stride: " << stride; | 371 LOG(ERROR) << "Invalid stride: " << stride; |
374 return false; | 372 return false; |
375 } | 373 } |
376 | 374 |
377 DCHECK(memory); | 375 DCHECK(memory); |
378 DCHECK(!memory_); | 376 DCHECK(!memory_); |
379 DCHECK(!IsCompressedFormat(format) || size_.width() % 4 == 0); | 377 DCHECK(!IsCompressedFormat(format) || size_.width() % 4 == 0); |
380 DCHECK(!IsCompressedFormat(format) || size_.height() % 4 == 0); | 378 DCHECK(!IsCompressedFormat(format) || size_.height() % 4 == 0); |
381 memory_ = memory; | 379 memory_ = memory; |
382 format_ = format; | 380 format_ = format; |
383 stride_ = stride; | 381 stride_ = stride; |
384 return true; | 382 return true; |
385 } | 383 } |
386 | 384 |
387 void GLImageMemory::Destroy(bool have_context) { | |
388 memory_ = nullptr; | |
389 } | |
390 | |
391 gfx::Size GLImageMemory::GetSize() { | 385 gfx::Size GLImageMemory::GetSize() { |
392 return size_; | 386 return size_; |
393 } | 387 } |
394 | 388 |
395 unsigned GLImageMemory::GetInternalFormat() { | 389 unsigned GLImageMemory::GetInternalFormat() { |
396 return internalformat_; | 390 return internalformat_; |
397 } | 391 } |
398 | 392 |
399 bool GLImageMemory::BindTexImage(unsigned target) { | 393 bool GLImageMemory::BindTexImage(unsigned target) { |
400 return false; | 394 return false; |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
496 return false; | 490 return false; |
497 } | 491 } |
498 | 492 |
499 // static | 493 // static |
500 unsigned GLImageMemory::GetInternalFormatForTesting(gfx::BufferFormat format) { | 494 unsigned GLImageMemory::GetInternalFormatForTesting(gfx::BufferFormat format) { |
501 DCHECK(ValidFormat(format)); | 495 DCHECK(ValidFormat(format)); |
502 return TextureFormat(format); | 496 return TextureFormat(format); |
503 } | 497 } |
504 | 498 |
505 } // namespace gl | 499 } // namespace gl |
OLD | NEW |