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

Side by Side Diff: gpu/command_buffer/tests/gl_manager.cc

Issue 962723002: Change CHROMIUM_image declarations to support multi planar input. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: reveman@ comments. Created 5 years, 9 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
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 "gpu/command_buffer/tests/gl_manager.h" 5 #include "gpu/command_buffer/tests/gl_manager.h"
6 6
7 #include <GLES2/gl2.h> 7 #include <GLES2/gl2.h>
8 #include <GLES2/gl2ext.h> 8 #include <GLES2/gl2ext.h>
9 #include <GLES2/gl2extchromium.h> 9 #include <GLES2/gl2extchromium.h>
10 10
11 #include <vector> 11 #include <vector>
12 12
13 #include "base/at_exit.h" 13 #include "base/at_exit.h"
14 #include "base/bind.h" 14 #include "base/bind.h"
15 #include "base/memory/ref_counted_memory.h" 15 #include "base/memory/ref_counted_memory.h"
16 #include "gpu/command_buffer/client/gles2_implementation.h" 16 #include "gpu/command_buffer/client/gles2_implementation.h"
17 #include "gpu/command_buffer/client/gles2_lib.h" 17 #include "gpu/command_buffer/client/gles2_lib.h"
18 #include "gpu/command_buffer/client/transfer_buffer.h" 18 #include "gpu/command_buffer/client/transfer_buffer.h"
19 #include "gpu/command_buffer/common/constants.h" 19 #include "gpu/command_buffer/common/constants.h"
20 #include "gpu/command_buffer/common/gles2_cmd_utils.h" 20 #include "gpu/command_buffer/common/gles2_cmd_utils.h"
21 #include "gpu/command_buffer/common/value_state.h" 21 #include "gpu/command_buffer/common/value_state.h"
22 #include "gpu/command_buffer/service/command_buffer_service.h" 22 #include "gpu/command_buffer/service/command_buffer_service.h"
23 #include "gpu/command_buffer/service/context_group.h" 23 #include "gpu/command_buffer/service/context_group.h"
24 #include "gpu/command_buffer/service/gl_context_virtual.h" 24 #include "gpu/command_buffer/service/gl_context_virtual.h"
25 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" 25 #include "gpu/command_buffer/service/gles2_cmd_decoder.h"
26 #include "gpu/command_buffer/service/gpu_scheduler.h" 26 #include "gpu/command_buffer/service/gpu_scheduler.h"
27 #include "gpu/command_buffer/service/image_factory.h"
27 #include "gpu/command_buffer/service/image_manager.h" 28 #include "gpu/command_buffer/service/image_manager.h"
28 #include "gpu/command_buffer/service/mailbox_manager_impl.h" 29 #include "gpu/command_buffer/service/mailbox_manager_impl.h"
29 #include "gpu/command_buffer/service/memory_tracking.h" 30 #include "gpu/command_buffer/service/memory_tracking.h"
30 #include "gpu/command_buffer/service/valuebuffer_manager.h" 31 #include "gpu/command_buffer/service/valuebuffer_manager.h"
31 #include "testing/gtest/include/gtest/gtest.h" 32 #include "testing/gtest/include/gtest/gtest.h"
32 #include "ui/gfx/gpu_memory_buffer.h" 33 #include "ui/gfx/gpu_memory_buffer.h"
33 #include "ui/gl/gl_context.h" 34 #include "ui/gl/gl_context.h"
34 #include "ui/gl/gl_image_ref_counted_memory.h" 35 #include "ui/gl/gl_image_ref_counted_memory.h"
35 #include "ui/gl/gl_share_group.h" 36 #include "ui/gl/gl_share_group.h"
36 #include "ui/gl/gl_surface.h" 37 #include "ui/gl/gl_surface.h"
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 } 359 }
359 360
360 bool GLManager::GetBufferChanged(int32 transfer_buffer_id) { 361 bool GLManager::GetBufferChanged(int32 transfer_buffer_id) {
361 return gpu_scheduler_->SetGetBuffer(transfer_buffer_id); 362 return gpu_scheduler_->SetGetBuffer(transfer_buffer_id);
362 } 363 }
363 364
364 Capabilities GLManager::GetCapabilities() { 365 Capabilities GLManager::GetCapabilities() {
365 return decoder_->GetCapabilities(); 366 return decoder_->GetCapabilities();
366 } 367 }
367 368
368 int32 GLManager::CreateImage(ClientBuffer buffer, 369 int32 GLManager::CreateImage(ClientBuffer* const buffers,
369 size_t width, 370 size_t width,
370 size_t height, 371 size_t height,
371 unsigned internalformat) { 372 unsigned internalformat) {
373 size_t num_buffers =
374 gpu::ImageFactory::NumberOfPlanesForImageFormat(internalformat);
375 // TODO(emircan): See http://crbug.com/439520; support passing multiple
376 // buffers when new multi-planar formats are added.
377 if (num_buffers != 1) {
378 NOTIMPLEMENTED();
379 return -1;
380 }
381
372 GpuMemoryBufferImpl* gpu_memory_buffer = 382 GpuMemoryBufferImpl* gpu_memory_buffer =
373 GpuMemoryBufferImpl::FromClientBuffer(buffer); 383 GpuMemoryBufferImpl::FromClientBuffer(buffers[0]);
374 384
375 scoped_refptr<gfx::GLImageRefCountedMemory> image( 385 scoped_refptr<gfx::GLImageRefCountedMemory> image(
376 new gfx::GLImageRefCountedMemory(gfx::Size(width, height), 386 new gfx::GLImageRefCountedMemory(gfx::Size(width, height),
377 internalformat)); 387 internalformat));
378 if (!image->Initialize(gpu_memory_buffer->bytes(), 388 if (!image->Initialize(gpu_memory_buffer->bytes(),
379 gpu_memory_buffer->GetFormat())) { 389 gpu_memory_buffer->GetFormat())) {
380 return -1; 390 return -1;
381 } 391 }
382 392
383 static int32 next_id = 1; 393 static int32 next_id = 1;
384 int32 new_id = next_id++; 394 int32 new_id = next_id++;
385 395
386 gpu::gles2::ImageManager* image_manager = decoder_->GetImageManager(); 396 gpu::gles2::ImageManager* image_manager = decoder_->GetImageManager();
387 DCHECK(image_manager); 397 DCHECK(image_manager);
388 image_manager->AddImage(image.get(), new_id); 398 image_manager->AddImage(image.get(), new_id);
389 return new_id; 399 return new_id;
390 } 400 }
391 401
392 int32 GLManager::CreateGpuMemoryBufferImage(size_t width, 402 int32 GLManager::CreateGpuMemoryBufferImage(size_t width,
393 size_t height, 403 size_t height,
394 unsigned internalformat, 404 unsigned internalformat,
395 unsigned usage) { 405 unsigned usage) {
396 DCHECK_EQ(usage, static_cast<unsigned>(GL_MAP_CHROMIUM)); 406 DCHECK_EQ(usage, static_cast<unsigned>(GL_MAP_CHROMIUM));
397 scoped_ptr<gfx::GpuMemoryBuffer> buffer = GLManager::CreateGpuMemoryBuffer( 407 scoped_ptr<gfx::GpuMemoryBuffer> buffer = GLManager::CreateGpuMemoryBuffer(
398 gfx::Size(width, height), gfx::GpuMemoryBuffer::RGBA_8888); 408 gfx::Size(width, height), gfx::GpuMemoryBuffer::RGBA_8888);
399 return CreateImage(buffer->AsClientBuffer(), width, height, internalformat); 409 ClientBuffer buffers[] = {buffer->AsClientBuffer()};
410 return CreateImage(buffers, width, height, internalformat);
400 } 411 }
401 412
402 void GLManager::DestroyImage(int32 id) { 413 void GLManager::DestroyImage(int32 id) {
403 gpu::gles2::ImageManager* image_manager = decoder_->GetImageManager(); 414 gpu::gles2::ImageManager* image_manager = decoder_->GetImageManager();
404 DCHECK(image_manager); 415 DCHECK(image_manager);
405 image_manager->RemoveImage(id); 416 image_manager->RemoveImage(id);
406 } 417 }
407 418
408 uint32 GLManager::InsertSyncPoint() { 419 uint32 GLManager::InsertSyncPoint() {
409 NOTIMPLEMENTED(); 420 NOTIMPLEMENTED();
(...skipping 25 matching lines...) Expand all
435 uint32 GLManager::CreateStreamTexture(uint32 texture_id) { 446 uint32 GLManager::CreateStreamTexture(uint32 texture_id) {
436 NOTIMPLEMENTED(); 447 NOTIMPLEMENTED();
437 return 0; 448 return 0;
438 } 449 }
439 450
440 void GLManager::SetLock(base::Lock*) { 451 void GLManager::SetLock(base::Lock*) {
441 NOTIMPLEMENTED(); 452 NOTIMPLEMENTED();
442 } 453 }
443 454
444 } // namespace gpu 455 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698