| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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 "cc/resources/resource_provider.h" | 5 #include "cc/resources/resource_provider.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <limits> | 8 #include <limits> |
| 9 | 9 |
| 10 #include "base/containers/hash_tables.h" | 10 #include "base/containers/hash_tables.h" |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 205 }; | 205 }; |
| 206 | 206 |
| 207 } // namespace | 207 } // namespace |
| 208 | 208 |
| 209 ResourceProvider::Resource::Resource() | 209 ResourceProvider::Resource::Resource() |
| 210 : child_id(0), | 210 : child_id(0), |
| 211 gl_id(0), | 211 gl_id(0), |
| 212 gl_pixel_buffer_id(0), | 212 gl_pixel_buffer_id(0), |
| 213 gl_upload_query_id(0), | 213 gl_upload_query_id(0), |
| 214 gl_read_lock_query_id(0), | 214 gl_read_lock_query_id(0), |
| 215 pixels(NULL), | 215 pixels(nullptr), |
| 216 lock_for_read_count(0), | 216 lock_for_read_count(0), |
| 217 imported_count(0), | 217 imported_count(0), |
| 218 exported_count(0), | 218 exported_count(0), |
| 219 dirty_image(false), | 219 dirty_image(false), |
| 220 locked_for_write(false), | 220 locked_for_write(false), |
| 221 lost(false), | 221 lost(false), |
| 222 marked_for_deletion(false), | 222 marked_for_deletion(false), |
| 223 pending_set_pixels(false), | 223 pending_set_pixels(false), |
| 224 set_pixels_completion_forced(false), | 224 set_pixels_completion_forced(false), |
| 225 allocated(false), | 225 allocated(false), |
| 226 read_lock_fences_enabled(false), | 226 read_lock_fences_enabled(false), |
| 227 has_shared_bitmap_id(false), | 227 has_shared_bitmap_id(false), |
| 228 allow_overlay(false), | 228 allow_overlay(false), |
| 229 read_lock_fence(NULL), | 229 read_lock_fence(nullptr), |
| 230 size(), | 230 size(), |
| 231 origin(Internal), | 231 origin(Internal), |
| 232 target(0), | 232 target(0), |
| 233 original_filter(0), | 233 original_filter(0), |
| 234 filter(0), | 234 filter(0), |
| 235 image_id(0), | 235 image_id(0), |
| 236 bound_image_id(0), | 236 bound_image_id(0), |
| 237 texture_pool(0), | 237 texture_pool(0), |
| 238 wrap_mode(0), | 238 wrap_mode(0), |
| 239 hint(TextureHintImmutable), | 239 hint(TextureHintImmutable), |
| 240 type(InvalidType), | 240 type(InvalidType), |
| 241 format(RGBA_8888), | 241 format(RGBA_8888), |
| 242 shared_bitmap(NULL) { | 242 shared_bitmap(nullptr) { |
| 243 } | 243 } |
| 244 | 244 |
| 245 ResourceProvider::Resource::~Resource() {} | 245 ResourceProvider::Resource::~Resource() {} |
| 246 | 246 |
| 247 ResourceProvider::Resource::Resource(GLuint texture_id, | 247 ResourceProvider::Resource::Resource(GLuint texture_id, |
| 248 const gfx::Size& size, | 248 const gfx::Size& size, |
| 249 Origin origin, | 249 Origin origin, |
| 250 GLenum target, | 250 GLenum target, |
| 251 GLenum filter, | 251 GLenum filter, |
| 252 GLenum texture_pool, | 252 GLenum texture_pool, |
| 253 GLint wrap_mode, | 253 GLint wrap_mode, |
| 254 TextureHint hint, | 254 TextureHint hint, |
| 255 ResourceFormat format) | 255 ResourceFormat format) |
| 256 : child_id(0), | 256 : child_id(0), |
| 257 gl_id(texture_id), | 257 gl_id(texture_id), |
| 258 gl_pixel_buffer_id(0), | 258 gl_pixel_buffer_id(0), |
| 259 gl_upload_query_id(0), | 259 gl_upload_query_id(0), |
| 260 gl_read_lock_query_id(0), | 260 gl_read_lock_query_id(0), |
| 261 pixels(NULL), | 261 pixels(nullptr), |
| 262 lock_for_read_count(0), | 262 lock_for_read_count(0), |
| 263 imported_count(0), | 263 imported_count(0), |
| 264 exported_count(0), | 264 exported_count(0), |
| 265 dirty_image(false), | 265 dirty_image(false), |
| 266 locked_for_write(false), | 266 locked_for_write(false), |
| 267 lost(false), | 267 lost(false), |
| 268 marked_for_deletion(false), | 268 marked_for_deletion(false), |
| 269 pending_set_pixels(false), | 269 pending_set_pixels(false), |
| 270 set_pixels_completion_forced(false), | 270 set_pixels_completion_forced(false), |
| 271 allocated(false), | 271 allocated(false), |
| 272 read_lock_fences_enabled(false), | 272 read_lock_fences_enabled(false), |
| 273 has_shared_bitmap_id(false), | 273 has_shared_bitmap_id(false), |
| 274 allow_overlay(false), | 274 allow_overlay(false), |
| 275 read_lock_fence(NULL), | 275 read_lock_fence(nullptr), |
| 276 size(size), | 276 size(size), |
| 277 origin(origin), | 277 origin(origin), |
| 278 target(target), | 278 target(target), |
| 279 original_filter(filter), | 279 original_filter(filter), |
| 280 filter(filter), | 280 filter(filter), |
| 281 image_id(0), | 281 image_id(0), |
| 282 bound_image_id(0), | 282 bound_image_id(0), |
| 283 texture_pool(texture_pool), | 283 texture_pool(texture_pool), |
| 284 wrap_mode(wrap_mode), | 284 wrap_mode(wrap_mode), |
| 285 hint(hint), | 285 hint(hint), |
| 286 type(GLTexture), | 286 type(GLTexture), |
| 287 format(format), | 287 format(format), |
| 288 shared_bitmap(NULL) { | 288 shared_bitmap(nullptr) { |
| 289 DCHECK(wrap_mode == GL_CLAMP_TO_EDGE || wrap_mode == GL_REPEAT); | 289 DCHECK(wrap_mode == GL_CLAMP_TO_EDGE || wrap_mode == GL_REPEAT); |
| 290 DCHECK_EQ(origin == Internal, !!texture_pool); | 290 DCHECK_EQ(origin == Internal, !!texture_pool); |
| 291 } | 291 } |
| 292 | 292 |
| 293 ResourceProvider::Resource::Resource(uint8_t* pixels, | 293 ResourceProvider::Resource::Resource(uint8_t* pixels, |
| 294 SharedBitmap* bitmap, | 294 SharedBitmap* bitmap, |
| 295 const gfx::Size& size, | 295 const gfx::Size& size, |
| 296 Origin origin, | 296 Origin origin, |
| 297 GLenum filter, | 297 GLenum filter, |
| 298 GLint wrap_mode) | 298 GLint wrap_mode) |
| 299 : child_id(0), | 299 : child_id(0), |
| 300 gl_id(0), | 300 gl_id(0), |
| 301 gl_pixel_buffer_id(0), | 301 gl_pixel_buffer_id(0), |
| 302 gl_upload_query_id(0), | 302 gl_upload_query_id(0), |
| 303 gl_read_lock_query_id(0), | 303 gl_read_lock_query_id(0), |
| 304 pixels(pixels), | 304 pixels(pixels), |
| 305 lock_for_read_count(0), | 305 lock_for_read_count(0), |
| 306 imported_count(0), | 306 imported_count(0), |
| 307 exported_count(0), | 307 exported_count(0), |
| 308 dirty_image(false), | 308 dirty_image(false), |
| 309 locked_for_write(false), | 309 locked_for_write(false), |
| 310 lost(false), | 310 lost(false), |
| 311 marked_for_deletion(false), | 311 marked_for_deletion(false), |
| 312 pending_set_pixels(false), | 312 pending_set_pixels(false), |
| 313 set_pixels_completion_forced(false), | 313 set_pixels_completion_forced(false), |
| 314 allocated(false), | 314 allocated(false), |
| 315 read_lock_fences_enabled(false), | 315 read_lock_fences_enabled(false), |
| 316 has_shared_bitmap_id(!!bitmap), | 316 has_shared_bitmap_id(!!bitmap), |
| 317 allow_overlay(false), | 317 allow_overlay(false), |
| 318 read_lock_fence(NULL), | 318 read_lock_fence(nullptr), |
| 319 size(size), | 319 size(size), |
| 320 origin(origin), | 320 origin(origin), |
| 321 target(0), | 321 target(0), |
| 322 original_filter(filter), | 322 original_filter(filter), |
| 323 filter(filter), | 323 filter(filter), |
| 324 image_id(0), | 324 image_id(0), |
| 325 bound_image_id(0), | 325 bound_image_id(0), |
| 326 texture_pool(0), | 326 texture_pool(0), |
| 327 wrap_mode(wrap_mode), | 327 wrap_mode(wrap_mode), |
| 328 hint(TextureHintImmutable), | 328 hint(TextureHintImmutable), |
| 329 type(Bitmap), | 329 type(Bitmap), |
| 330 format(RGBA_8888), | 330 format(RGBA_8888), |
| 331 shared_bitmap(bitmap) { | 331 shared_bitmap(bitmap) { |
| 332 DCHECK(wrap_mode == GL_CLAMP_TO_EDGE || wrap_mode == GL_REPEAT); | 332 DCHECK(wrap_mode == GL_CLAMP_TO_EDGE || wrap_mode == GL_REPEAT); |
| 333 DCHECK(origin == Delegated || pixels); | 333 DCHECK(origin == Delegated || pixels); |
| 334 if (bitmap) | 334 if (bitmap) |
| 335 shared_bitmap_id = bitmap->id(); | 335 shared_bitmap_id = bitmap->id(); |
| 336 } | 336 } |
| 337 | 337 |
| 338 ResourceProvider::Resource::Resource(const SharedBitmapId& bitmap_id, | 338 ResourceProvider::Resource::Resource(const SharedBitmapId& bitmap_id, |
| 339 const gfx::Size& size, | 339 const gfx::Size& size, |
| 340 Origin origin, | 340 Origin origin, |
| 341 GLenum filter, | 341 GLenum filter, |
| 342 GLint wrap_mode) | 342 GLint wrap_mode) |
| 343 : child_id(0), | 343 : child_id(0), |
| 344 gl_id(0), | 344 gl_id(0), |
| 345 gl_pixel_buffer_id(0), | 345 gl_pixel_buffer_id(0), |
| 346 gl_upload_query_id(0), | 346 gl_upload_query_id(0), |
| 347 gl_read_lock_query_id(0), | 347 gl_read_lock_query_id(0), |
| 348 pixels(NULL), | 348 pixels(nullptr), |
| 349 lock_for_read_count(0), | 349 lock_for_read_count(0), |
| 350 imported_count(0), | 350 imported_count(0), |
| 351 exported_count(0), | 351 exported_count(0), |
| 352 dirty_image(false), | 352 dirty_image(false), |
| 353 locked_for_write(false), | 353 locked_for_write(false), |
| 354 lost(false), | 354 lost(false), |
| 355 marked_for_deletion(false), | 355 marked_for_deletion(false), |
| 356 pending_set_pixels(false), | 356 pending_set_pixels(false), |
| 357 set_pixels_completion_forced(false), | 357 set_pixels_completion_forced(false), |
| 358 allocated(false), | 358 allocated(false), |
| 359 read_lock_fences_enabled(false), | 359 read_lock_fences_enabled(false), |
| 360 has_shared_bitmap_id(true), | 360 has_shared_bitmap_id(true), |
| 361 allow_overlay(false), | 361 allow_overlay(false), |
| 362 read_lock_fence(NULL), | 362 read_lock_fence(nullptr), |
| 363 size(size), | 363 size(size), |
| 364 origin(origin), | 364 origin(origin), |
| 365 target(0), | 365 target(0), |
| 366 original_filter(filter), | 366 original_filter(filter), |
| 367 filter(filter), | 367 filter(filter), |
| 368 image_id(0), | 368 image_id(0), |
| 369 bound_image_id(0), | 369 bound_image_id(0), |
| 370 texture_pool(0), | 370 texture_pool(0), |
| 371 wrap_mode(wrap_mode), | 371 wrap_mode(wrap_mode), |
| 372 hint(TextureHintImmutable), | 372 hint(TextureHintImmutable), |
| 373 type(Bitmap), | 373 type(Bitmap), |
| 374 format(RGBA_8888), | 374 format(RGBA_8888), |
| 375 shared_bitmap_id(bitmap_id), | 375 shared_bitmap_id(bitmap_id), |
| 376 shared_bitmap(NULL) { | 376 shared_bitmap(nullptr) { |
| 377 DCHECK(wrap_mode == GL_CLAMP_TO_EDGE || wrap_mode == GL_REPEAT); | 377 DCHECK(wrap_mode == GL_CLAMP_TO_EDGE || wrap_mode == GL_REPEAT); |
| 378 } | 378 } |
| 379 | 379 |
| 380 ResourceProvider::Child::Child() : marked_for_deletion(false) {} | 380 ResourceProvider::Child::Child() : marked_for_deletion(false) {} |
| 381 | 381 |
| 382 ResourceProvider::Child::~Child() {} | 382 ResourceProvider::Child::~Child() {} |
| 383 | 383 |
| 384 scoped_ptr<ResourceProvider> ResourceProvider::Create( | 384 scoped_ptr<ResourceProvider> ResourceProvider::Create( |
| 385 OutputSurface* output_surface, | 385 OutputSurface* output_surface, |
| 386 SharedBitmapManager* shared_bitmap_manager, | 386 SharedBitmapManager* shared_bitmap_manager, |
| (...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 668 GLC(gl, gl->DeleteTextures(1, &resource->gl_id)); | 668 GLC(gl, gl->DeleteTextures(1, &resource->gl_id)); |
| 669 resource->gl_id = 0; | 669 resource->gl_id = 0; |
| 670 if (!lost_resource) | 670 if (!lost_resource) |
| 671 sync_point = gl->InsertSyncPointCHROMIUM(); | 671 sync_point = gl->InsertSyncPointCHROMIUM(); |
| 672 } | 672 } |
| 673 } else { | 673 } else { |
| 674 DCHECK(resource->mailbox.IsSharedMemory()); | 674 DCHECK(resource->mailbox.IsSharedMemory()); |
| 675 base::SharedMemory* shared_memory = resource->mailbox.shared_memory(); | 675 base::SharedMemory* shared_memory = resource->mailbox.shared_memory(); |
| 676 if (resource->pixels && shared_memory) { | 676 if (resource->pixels && shared_memory) { |
| 677 DCHECK(shared_memory->memory() == resource->pixels); | 677 DCHECK(shared_memory->memory() == resource->pixels); |
| 678 resource->pixels = NULL; | 678 resource->pixels = nullptr; |
| 679 delete resource->shared_bitmap; | 679 delete resource->shared_bitmap; |
| 680 resource->shared_bitmap = NULL; | 680 resource->shared_bitmap = nullptr; |
| 681 } | 681 } |
| 682 } | 682 } |
| 683 resource->release_callback_impl.Run( | 683 resource->release_callback_impl.Run( |
| 684 sync_point, lost_resource, blocking_main_thread_task_runner_); | 684 sync_point, lost_resource, blocking_main_thread_task_runner_); |
| 685 } | 685 } |
| 686 if (resource->gl_id) { | 686 if (resource->gl_id) { |
| 687 GLES2Interface* gl = ContextGL(); | 687 GLES2Interface* gl = ContextGL(); |
| 688 DCHECK(gl); | 688 DCHECK(gl); |
| 689 GLC(gl, gl->DeleteTextures(1, &resource->gl_id)); | 689 GLC(gl, gl->DeleteTextures(1, &resource->gl_id)); |
| 690 resource->gl_id = 0; | 690 resource->gl_id = 0; |
| 691 } | 691 } |
| 692 if (resource->shared_bitmap) { | 692 if (resource->shared_bitmap) { |
| 693 DCHECK(resource->origin != Resource::External); | 693 DCHECK(resource->origin != Resource::External); |
| 694 DCHECK_EQ(Bitmap, resource->type); | 694 DCHECK_EQ(Bitmap, resource->type); |
| 695 delete resource->shared_bitmap; | 695 delete resource->shared_bitmap; |
| 696 resource->pixels = NULL; | 696 resource->pixels = nullptr; |
| 697 } | 697 } |
| 698 if (resource->pixels) { | 698 if (resource->pixels) { |
| 699 DCHECK(resource->origin == Resource::Internal); | 699 DCHECK(resource->origin == Resource::Internal); |
| 700 delete[] resource->pixels; | 700 delete[] resource->pixels; |
| 701 } | 701 } |
| 702 resources_.erase(it); | 702 resources_.erase(it); |
| 703 } | 703 } |
| 704 | 704 |
| 705 ResourceProvider::ResourceType ResourceProvider::GetResourceType( | 705 ResourceProvider::ResourceType ResourceProvider::GetResourceType( |
| 706 ResourceId id) { | 706 ResourceId id) { |
| (...skipping 948 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1655 GLES2Interface* gl = ContextGL(); | 1655 GLES2Interface* gl = ContextGL(); |
| 1656 DCHECK(gl); | 1656 DCHECK(gl); |
| 1657 if (!resource->gl_pixel_buffer_id) | 1657 if (!resource->gl_pixel_buffer_id) |
| 1658 resource->gl_pixel_buffer_id = buffer_id_allocator_->NextId(); | 1658 resource->gl_pixel_buffer_id = buffer_id_allocator_->NextId(); |
| 1659 gl->BindBuffer(GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM, | 1659 gl->BindBuffer(GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM, |
| 1660 resource->gl_pixel_buffer_id); | 1660 resource->gl_pixel_buffer_id); |
| 1661 unsigned bytes_per_pixel = BitsPerPixel(resource->format) / 8; | 1661 unsigned bytes_per_pixel = BitsPerPixel(resource->format) / 8; |
| 1662 gl->BufferData(GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM, | 1662 gl->BufferData(GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM, |
| 1663 resource->size.height() * | 1663 resource->size.height() * |
| 1664 RoundUp(bytes_per_pixel * resource->size.width(), 4u), | 1664 RoundUp(bytes_per_pixel * resource->size.width(), 4u), |
| 1665 NULL, | 1665 nullptr, |
| 1666 GL_DYNAMIC_DRAW); | 1666 GL_DYNAMIC_DRAW); |
| 1667 gl->BindBuffer(GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM, 0); | 1667 gl->BindBuffer(GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM, 0); |
| 1668 } | 1668 } |
| 1669 | 1669 |
| 1670 void ResourceProvider::ReleasePixelBuffer(ResourceId id) { | 1670 void ResourceProvider::ReleasePixelBuffer(ResourceId id) { |
| 1671 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"), | 1671 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"), |
| 1672 "ResourceProvider::ReleasePixelBuffer"); | 1672 "ResourceProvider::ReleasePixelBuffer"); |
| 1673 | 1673 |
| 1674 Resource* resource = GetResource(id); | 1674 Resource* resource = GetResource(id); |
| 1675 DCHECK(resource->origin == Resource::Internal); | 1675 DCHECK(resource->origin == Resource::Internal); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 1689 } | 1689 } |
| 1690 | 1690 |
| 1691 DCHECK_EQ(GLTexture, resource->type); | 1691 DCHECK_EQ(GLTexture, resource->type); |
| 1692 if (!resource->gl_pixel_buffer_id) | 1692 if (!resource->gl_pixel_buffer_id) |
| 1693 return; | 1693 return; |
| 1694 GLES2Interface* gl = ContextGL(); | 1694 GLES2Interface* gl = ContextGL(); |
| 1695 DCHECK(gl); | 1695 DCHECK(gl); |
| 1696 gl->BindBuffer(GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM, | 1696 gl->BindBuffer(GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM, |
| 1697 resource->gl_pixel_buffer_id); | 1697 resource->gl_pixel_buffer_id); |
| 1698 gl->BufferData( | 1698 gl->BufferData( |
| 1699 GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM, 0, NULL, GL_DYNAMIC_DRAW); | 1699 GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM, 0, nullptr, GL_DYNAMIC_DRAW); |
| 1700 gl->BindBuffer(GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM, 0); | 1700 gl->BindBuffer(GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM, 0); |
| 1701 } | 1701 } |
| 1702 | 1702 |
| 1703 uint8_t* ResourceProvider::MapPixelBuffer(ResourceId id, int* stride) { | 1703 uint8_t* ResourceProvider::MapPixelBuffer(ResourceId id, int* stride) { |
| 1704 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"), | 1704 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"), |
| 1705 "ResourceProvider::MapPixelBuffer"); | 1705 "ResourceProvider::MapPixelBuffer"); |
| 1706 | 1706 |
| 1707 Resource* resource = GetResource(id); | 1707 Resource* resource = GetResource(id); |
| 1708 DCHECK(resource->origin == Resource::Internal); | 1708 DCHECK(resource->origin == Resource::Internal); |
| 1709 DCHECK_EQ(resource->exported_count, 0); | 1709 DCHECK_EQ(resource->exported_count, 0); |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1801 resource->gl_upload_query_id); | 1801 resource->gl_upload_query_id); |
| 1802 if (allocate) { | 1802 if (allocate) { |
| 1803 gl->AsyncTexImage2DCHROMIUM(GL_TEXTURE_2D, | 1803 gl->AsyncTexImage2DCHROMIUM(GL_TEXTURE_2D, |
| 1804 0, /* level */ | 1804 0, /* level */ |
| 1805 GLInternalFormat(resource->format), | 1805 GLInternalFormat(resource->format), |
| 1806 resource->size.width(), | 1806 resource->size.width(), |
| 1807 resource->size.height(), | 1807 resource->size.height(), |
| 1808 0, /* border */ | 1808 0, /* border */ |
| 1809 GLDataFormat(resource->format), | 1809 GLDataFormat(resource->format), |
| 1810 GLDataType(resource->format), | 1810 GLDataType(resource->format), |
| 1811 NULL); | 1811 nullptr); |
| 1812 } else { | 1812 } else { |
| 1813 gl->AsyncTexSubImage2DCHROMIUM(GL_TEXTURE_2D, | 1813 gl->AsyncTexSubImage2DCHROMIUM(GL_TEXTURE_2D, |
| 1814 0, /* level */ | 1814 0, /* level */ |
| 1815 0, /* x */ | 1815 0, /* x */ |
| 1816 0, /* y */ | 1816 0, /* y */ |
| 1817 resource->size.width(), | 1817 resource->size.width(), |
| 1818 resource->size.height(), | 1818 resource->size.height(), |
| 1819 GLDataFormat(resource->format), | 1819 GLDataFormat(resource->format), |
| 1820 GLDataType(resource->format), | 1820 GLDataType(resource->format), |
| 1821 NULL); | 1821 nullptr); |
| 1822 } | 1822 } |
| 1823 gl->EndQueryEXT(GL_ASYNC_PIXEL_UNPACK_COMPLETED_CHROMIUM); | 1823 gl->EndQueryEXT(GL_ASYNC_PIXEL_UNPACK_COMPLETED_CHROMIUM); |
| 1824 gl->BindBuffer(GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM, 0); | 1824 gl->BindBuffer(GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM, 0); |
| 1825 | 1825 |
| 1826 resource->pending_set_pixels = true; | 1826 resource->pending_set_pixels = true; |
| 1827 resource->set_pixels_completion_forced = false; | 1827 resource->set_pixels_completion_forced = false; |
| 1828 } | 1828 } |
| 1829 | 1829 |
| 1830 void ResourceProvider::ForceSetPixelsToComplete(ResourceId id) { | 1830 void ResourceProvider::ForceSetPixelsToComplete(ResourceId id) { |
| 1831 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"), | 1831 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"), |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1956 if (format != ETC1) { | 1956 if (format != ETC1) { |
| 1957 GLC(gl, | 1957 GLC(gl, |
| 1958 gl->TexImage2D(GL_TEXTURE_2D, | 1958 gl->TexImage2D(GL_TEXTURE_2D, |
| 1959 0, | 1959 0, |
| 1960 GLInternalFormat(format), | 1960 GLInternalFormat(format), |
| 1961 size.width(), | 1961 size.width(), |
| 1962 size.height(), | 1962 size.height(), |
| 1963 0, | 1963 0, |
| 1964 GLDataFormat(format), | 1964 GLDataFormat(format), |
| 1965 GLDataType(format), | 1965 GLDataType(format), |
| 1966 NULL)); | 1966 nullptr)); |
| 1967 } | 1967 } |
| 1968 } | 1968 } |
| 1969 } | 1969 } |
| 1970 | 1970 |
| 1971 void ResourceProvider::BindImageForSampling(Resource* resource) { | 1971 void ResourceProvider::BindImageForSampling(Resource* resource) { |
| 1972 GLES2Interface* gl = ContextGL(); | 1972 GLES2Interface* gl = ContextGL(); |
| 1973 DCHECK(resource->gl_id); | 1973 DCHECK(resource->gl_id); |
| 1974 DCHECK(resource->image_id); | 1974 DCHECK(resource->image_id); |
| 1975 | 1975 |
| 1976 // Release image currently bound to texture. | 1976 // Release image currently bound to texture. |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2046 } | 2046 } |
| 2047 | 2047 |
| 2048 GLint ResourceProvider::GetActiveTextureUnit(GLES2Interface* gl) { | 2048 GLint ResourceProvider::GetActiveTextureUnit(GLES2Interface* gl) { |
| 2049 GLint active_unit = 0; | 2049 GLint active_unit = 0; |
| 2050 gl->GetIntegerv(GL_ACTIVE_TEXTURE, &active_unit); | 2050 gl->GetIntegerv(GL_ACTIVE_TEXTURE, &active_unit); |
| 2051 return active_unit; | 2051 return active_unit; |
| 2052 } | 2052 } |
| 2053 | 2053 |
| 2054 GLES2Interface* ResourceProvider::ContextGL() const { | 2054 GLES2Interface* ResourceProvider::ContextGL() const { |
| 2055 ContextProvider* context_provider = output_surface_->context_provider(); | 2055 ContextProvider* context_provider = output_surface_->context_provider(); |
| 2056 return context_provider ? context_provider->ContextGL() : NULL; | 2056 return context_provider ? context_provider->ContextGL() : nullptr; |
| 2057 } | 2057 } |
| 2058 | 2058 |
| 2059 class GrContext* ResourceProvider::GrContext() const { | 2059 class GrContext* ResourceProvider::GrContext() const { |
| 2060 ContextProvider* context_provider = output_surface_->context_provider(); | 2060 ContextProvider* context_provider = output_surface_->context_provider(); |
| 2061 return context_provider ? context_provider->GrContext() : NULL; | 2061 return context_provider ? context_provider->GrContext() : nullptr; |
| 2062 } | 2062 } |
| 2063 | 2063 |
| 2064 } // namespace cc | 2064 } // namespace cc |
| OLD | NEW |