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

Unified Diff: gpu/gles2_conform_support/egl/display.cc

Issue 7066003: Revert 86306 (failed compile on win builder) - Move OpenGL ES 2.0 conformance test support into m... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gpu/gles2_conform_support/egl/display.h ('k') | gpu/gles2_conform_support/egl/egl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gpu/gles2_conform_support/egl/display.cc
===================================================================
--- gpu/gles2_conform_support/egl/display.cc (revision 86314)
+++ gpu/gles2_conform_support/egl/display.cc (working copy)
@@ -1,187 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "gpu/gles2_conform_support/egl/display.h"
-
-#include <vector>
-#include "gpu/command_buffer/client/gles2_lib.h"
-#include "gpu/command_buffer/service/command_buffer_service.h"
-#include "gpu/command_buffer/service/gles2_cmd_decoder.h"
-#include "gpu/command_buffer/service/gpu_scheduler.h"
-#include "gpu/GLES2/gles2_command_buffer.h"
-#include "gpu/gles2_conform_support/egl/config.h"
-#include "gpu/gles2_conform_support/egl/surface.h"
-
-namespace {
-const int32 kCommandBufferSize = 1024 * 1024;
-const int32 kTransferBufferSize = 512 * 1024;
-}
-
-namespace egl {
-
-Display::Display(EGLNativeDisplayType display_id)
- : display_id_(display_id),
- is_initialized_(false),
- transfer_buffer_id_(-1) {
-}
-
-Display::~Display() {
- gles2::Terminate();
-}
-
-bool Display::Initialize() {
- using gpu::CommandBufferService;
- scoped_ptr<CommandBufferService> command_buffer(new CommandBufferService);
- if (!command_buffer->Initialize(kCommandBufferSize))
- return false;
-
- using gpu::Buffer;
- int32 transfer_buffer_id =
- command_buffer->CreateTransferBuffer(kTransferBufferSize, -1);
- Buffer transfer_buffer =
- command_buffer->GetTransferBuffer(transfer_buffer_id);
- if (transfer_buffer.ptr == NULL)
- return false;
-
- using gpu::gles2::GLES2CmdHelper;
- scoped_ptr<GLES2CmdHelper> cmd_helper(
- new GLES2CmdHelper(command_buffer.get()));
- if (!cmd_helper->Initialize(kCommandBufferSize))
- return false;
-
- gles2::Initialize();
-
- is_initialized_ = true;
- command_buffer_.reset(command_buffer.release());
- transfer_buffer_id_ = transfer_buffer_id;
- gles2_cmd_helper_.reset(cmd_helper.release());
- return true;
-}
-
-bool Display::IsValidConfig(EGLConfig config) {
- return (config != NULL) && (config == config_.get());
-}
-
-bool Display::GetConfigs(EGLConfig* configs,
- EGLint config_size,
- EGLint* num_config) {
- // TODO(alokp): Find out a way to find all configs. CommandBuffer currently
- // does not support finding or choosing configs.
- *num_config = 1;
- if (configs != NULL) {
- if (config_ == NULL) {
- config_.reset(new Config);
- }
- configs[0] = config_.get();
- }
- return true;
-}
-
-bool Display::GetConfigAttrib(EGLConfig config,
- EGLint attribute,
- EGLint* value) {
- const egl::Config* cfg = static_cast<egl::Config*>(config);
- return cfg->GetAttrib(attribute, value);
-}
-
-bool Display::IsValidNativeWindow(EGLNativeWindowType win) {
-#if defined OS_WIN
- return ::IsWindow(win) != FALSE;
-#else
- // TODO(alokp): Validate window handle.
- return true;
-#endif // OS_WIN
-}
-
-bool Display::IsValidSurface(EGLSurface surface) {
- return (surface != NULL) && (surface == surface_.get());
-}
-
-EGLSurface Display::CreateWindowSurface(EGLConfig config,
- EGLNativeWindowType win,
- const EGLint* attrib_list) {
- if (surface_ != NULL) {
- // We do not support more than one window surface.
- return EGL_NO_SURFACE;
- }
-
- using gpu::GpuScheduler;
- std::vector<int32> attribs;
- scoped_ptr<GpuScheduler> gpu_scheduler(
- new GpuScheduler(command_buffer_.get(), NULL));
- if (!gpu_scheduler->Initialize(
- win, gfx::Size(), gpu::gles2::DisallowedExtensions(), NULL,
- attribs, NULL, 0))
- return EGL_NO_SURFACE;
-
- command_buffer_->SetPutOffsetChangeCallback(
- NewCallback(gpu_scheduler.get(), &GpuScheduler::PutChanged));
- gpu_scheduler_.reset(gpu_scheduler.release());
- surface_.reset(new Surface(win));
-
- return surface_.get();
-}
-
-void Display::DestroySurface(EGLSurface surface) {
- DCHECK(IsValidSurface(surface));
- gpu_scheduler_.reset();
- surface_.reset();
-}
-
-void Display::SwapBuffers(EGLSurface surface) {
- DCHECK(IsValidSurface(surface));
- context_->SwapBuffers();
-}
-
-bool Display::IsValidContext(EGLContext ctx) {
- return (ctx != NULL) && (ctx == context_.get());
-}
-
-EGLContext Display::CreateContext(EGLConfig config,
- EGLContext share_ctx,
- const EGLint* attrib_list) {
- DCHECK(IsValidConfig(config));
- // TODO(alokp): Command buffer does not support shared contexts.
- if (share_ctx != NULL)
- return EGL_NO_CONTEXT;
-
- DCHECK(command_buffer_ != NULL);
- DCHECK(transfer_buffer_id_ != -1);
- gpu::Buffer buffer = command_buffer_->GetTransferBuffer(transfer_buffer_id_);
- DCHECK(buffer.ptr != NULL);
- bool share_resources = share_ctx != NULL;
- using gpu::gles2::GLES2Implementation;
- context_.reset(new GLES2Implementation(
- gles2_cmd_helper_.get(),
- buffer.size,
- buffer.ptr,
- transfer_buffer_id_,
- share_resources));
-
- context_->CommandBufferEnableCHROMIUM(
- PEPPER3D_ALLOW_BUFFERS_ON_MULTIPLE_TARGETS);
- context_->CommandBufferEnableCHROMIUM(
- PEPPER3D_SUPPORT_FIXED_ATTRIBS);
-
- return context_.get();
-}
-
-void Display::DestroyContext(EGLContext ctx) {
- DCHECK(IsValidContext(ctx));
- context_.reset();
-}
-
-bool Display::MakeCurrent(EGLSurface draw, EGLSurface read, EGLContext ctx) {
- if (ctx == EGL_NO_CONTEXT) {
- gles2::SetGLContext(NULL);
- } else {
- DCHECK(IsValidSurface(draw));
- DCHECK(IsValidSurface(read));
- DCHECK(IsValidContext(ctx));
- gles2::SetGLContext(context_.get());
- }
- return true;
-}
-
-} // namespace egl
« no previous file with comments | « gpu/gles2_conform_support/egl/display.h ('k') | gpu/gles2_conform_support/egl/egl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698