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 "gpu/command_buffer/service/texture_definition.h" | 5 #include "gpu/command_buffer/service/texture_definition.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include <list> | 9 #include <list> |
10 | 10 |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
152 GLuint texture_id) { | 152 GLuint texture_id) { |
153 EGLDisplay egl_display = gl::GLSurfaceEGL::GetHardwareDisplay(); | 153 EGLDisplay egl_display = gl::GLSurfaceEGL::GetHardwareDisplay(); |
154 EGLContext egl_context = eglGetCurrentContext(); | 154 EGLContext egl_context = eglGetCurrentContext(); |
155 | 155 |
156 DCHECK_NE(EGL_NO_CONTEXT, egl_context); | 156 DCHECK_NE(EGL_NO_CONTEXT, egl_context); |
157 DCHECK_NE(EGL_NO_DISPLAY, egl_display); | 157 DCHECK_NE(EGL_NO_DISPLAY, egl_display); |
158 DCHECK(glIsTexture(texture_id)); | 158 DCHECK(glIsTexture(texture_id)); |
159 | 159 |
160 DCHECK(gl::g_driver_egl.ext.b_EGL_KHR_image_base && | 160 DCHECK(gl::g_driver_egl.ext.b_EGL_KHR_image_base && |
161 gl::g_driver_egl.ext.b_EGL_KHR_gl_texture_2D_image && | 161 gl::g_driver_egl.ext.b_EGL_KHR_gl_texture_2D_image && |
162 gl::g_driver_gl.ext.b_GL_OES_EGL_image); | 162 gl::g_current_gl_driver->ext.b_GL_OES_EGL_image); |
163 | 163 |
164 const EGLint egl_attrib_list[] = { | 164 const EGLint egl_attrib_list[] = { |
165 EGL_GL_TEXTURE_LEVEL_KHR, 0, EGL_IMAGE_PRESERVED_KHR, EGL_TRUE, EGL_NONE}; | 165 EGL_GL_TEXTURE_LEVEL_KHR, 0, EGL_IMAGE_PRESERVED_KHR, EGL_TRUE, EGL_NONE}; |
166 EGLClientBuffer egl_buffer = reinterpret_cast<EGLClientBuffer>(texture_id); | 166 EGLClientBuffer egl_buffer = reinterpret_cast<EGLClientBuffer>(texture_id); |
167 EGLenum egl_target = EGL_GL_TEXTURE_2D_KHR; | 167 EGLenum egl_target = EGL_GL_TEXTURE_2D_KHR; |
168 | 168 |
169 EGLImageKHR egl_image = eglCreateImageKHR( | 169 EGLImageKHR egl_image = eglCreateImageKHR( |
170 egl_display, egl_context, egl_target, egl_buffer, egl_attrib_list); | 170 egl_display, egl_context, egl_target, egl_buffer, egl_attrib_list); |
171 | 171 |
172 if (egl_image == EGL_NO_IMAGE_KHR) { | 172 if (egl_image == EGL_NO_IMAGE_KHR) { |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
258 } // anonymous namespace | 258 } // anonymous namespace |
259 | 259 |
260 // static | 260 // static |
261 scoped_refptr<NativeImageBuffer> NativeImageBuffer::Create(GLuint texture_id) { | 261 scoped_refptr<NativeImageBuffer> NativeImageBuffer::Create(GLuint texture_id) { |
262 switch (gl::GetGLImplementation()) { | 262 switch (gl::GetGLImplementation()) { |
263 #if !defined(OS_MACOSX) | 263 #if !defined(OS_MACOSX) |
264 case gl::kGLImplementationEGLGLES2: | 264 case gl::kGLImplementationEGLGLES2: |
265 return NativeImageBufferEGL::Create(texture_id); | 265 return NativeImageBufferEGL::Create(texture_id); |
266 #endif | 266 #endif |
267 case gl::kGLImplementationMockGL: | 267 case gl::kGLImplementationMockGL: |
| 268 case gl::kGLImplementationStubGL: |
268 return new NativeImageBufferStub; | 269 return new NativeImageBufferStub; |
269 default: | 270 default: |
270 NOTREACHED(); | 271 NOTREACHED(); |
271 return NULL; | 272 return NULL; |
272 } | 273 } |
273 } | 274 } |
274 | 275 |
275 // static | 276 // static |
276 void TextureDefinition::AvoidEGLTargetTextureReuse() { | 277 void TextureDefinition::AvoidEGLTargetTextureReuse() { |
277 g_avoid_egl_target_texture_reuse = true; | 278 g_avoid_egl_target_texture_reuse = true; |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
461 return true; | 462 return true; |
462 } | 463 } |
463 | 464 |
464 bool TextureDefinition::SafeToRenderFrom() const { | 465 bool TextureDefinition::SafeToRenderFrom() const { |
465 return level_info_.cleared_rect.Contains( | 466 return level_info_.cleared_rect.Contains( |
466 gfx::Rect(level_info_.width, level_info_.height)); | 467 gfx::Rect(level_info_.width, level_info_.height)); |
467 } | 468 } |
468 | 469 |
469 } // namespace gles2 | 470 } // namespace gles2 |
470 } // namespace gpu | 471 } // namespace gpu |
OLD | NEW |