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/ozone/platform/dri/gbm_surface_factory.h" | 5 #include "ui/ozone/platform/dri/gbm_surface_factory.h" |
6 | 6 |
7 #include <gbm.h> | 7 #include <gbm.h> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 gbm_device* device, | 79 gbm_device* device, |
80 ScreenManager* screen_manager, | 80 ScreenManager* screen_manager, |
81 DriWindowDelegateManager* window_manager) { | 81 DriWindowDelegateManager* window_manager) { |
82 drm_ = dri; | 82 drm_ = dri; |
83 device_ = device; | 83 device_ = device; |
84 screen_manager_ = screen_manager; | 84 screen_manager_ = screen_manager; |
85 window_manager_ = window_manager; | 85 window_manager_ = window_manager; |
86 } | 86 } |
87 | 87 |
88 intptr_t GbmSurfaceFactory::GetNativeDisplay() { | 88 intptr_t GbmSurfaceFactory::GetNativeDisplay() { |
89 DCHECK(state_ == INITIALIZED); | |
90 return reinterpret_cast<intptr_t>(device_); | 89 return reinterpret_cast<intptr_t>(device_); |
91 } | 90 } |
92 | 91 |
93 const int32* GbmSurfaceFactory::GetEGLSurfaceProperties( | 92 const int32* GbmSurfaceFactory::GetEGLSurfaceProperties( |
94 const int32* desired_list) { | 93 const int32* desired_list) { |
95 static const int32 kConfigAttribs[] = { | 94 static const int32 kConfigAttribs[] = { |
96 EGL_BUFFER_SIZE, 32, | 95 EGL_BUFFER_SIZE, 32, |
97 EGL_ALPHA_SIZE, 8, | 96 EGL_ALPHA_SIZE, 8, |
98 EGL_BLUE_SIZE, 8, | 97 EGL_BLUE_SIZE, 8, |
99 EGL_GREEN_SIZE, 8, | 98 EGL_GREEN_SIZE, 8, |
100 EGL_RED_SIZE, 8, | 99 EGL_RED_SIZE, 8, |
101 EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, | 100 EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, |
102 EGL_SURFACE_TYPE, EGL_WINDOW_BIT, | 101 EGL_SURFACE_TYPE, EGL_WINDOW_BIT, |
103 EGL_NONE | 102 EGL_NONE |
104 }; | 103 }; |
105 | 104 |
106 return kConfigAttribs; | 105 return kConfigAttribs; |
107 } | 106 } |
108 | 107 |
109 bool GbmSurfaceFactory::LoadEGLGLES2Bindings( | 108 bool GbmSurfaceFactory::LoadEGLGLES2Bindings( |
110 AddGLLibraryCallback add_gl_library, | 109 AddGLLibraryCallback add_gl_library, |
111 SetGLGetProcAddressProcCallback set_gl_get_proc_address) { | 110 SetGLGetProcAddressProcCallback set_gl_get_proc_address) { |
112 return LoadDefaultEGLGLES2Bindings(add_gl_library, set_gl_get_proc_address); | 111 return LoadDefaultEGLGLES2Bindings(add_gl_library, set_gl_get_proc_address); |
113 } | 112 } |
114 | 113 |
115 scoped_ptr<SurfaceOzoneEGL> GbmSurfaceFactory::CreateEGLSurfaceForWidget( | 114 scoped_ptr<SurfaceOzoneEGL> GbmSurfaceFactory::CreateEGLSurfaceForWidget( |
116 gfx::AcceleratedWidget widget) { | 115 gfx::AcceleratedWidget widget) { |
117 DCHECK(state_ == INITIALIZED); | |
118 | |
119 DriWindowDelegate* delegate = GetOrCreateWindowDelegate(widget); | 116 DriWindowDelegate* delegate = GetOrCreateWindowDelegate(widget); |
120 | 117 |
121 scoped_ptr<GbmSurface> surface(new GbmSurface(delegate, device_, drm_)); | 118 scoped_ptr<GbmSurface> surface(new GbmSurface(delegate, device_, drm_)); |
122 if (!surface->Initialize()) | 119 if (!surface->Initialize()) |
123 return nullptr; | 120 return nullptr; |
124 | 121 |
125 return surface.Pass(); | 122 return surface.Pass(); |
126 } | 123 } |
127 | 124 |
128 scoped_ptr<SurfaceOzoneEGL> | 125 scoped_ptr<SurfaceOzoneEGL> |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
209 scoped_ptr<DriWindowDelegate> delegate(new DriWindowDelegateImpl( | 206 scoped_ptr<DriWindowDelegate> delegate(new DriWindowDelegateImpl( |
210 widget, drm_, window_manager_, screen_manager_)); | 207 widget, drm_, window_manager_, screen_manager_)); |
211 delegate->Initialize(); | 208 delegate->Initialize(); |
212 window_manager_->AddWindowDelegate(widget, delegate.Pass()); | 209 window_manager_->AddWindowDelegate(widget, delegate.Pass()); |
213 } | 210 } |
214 | 211 |
215 return window_manager_->GetWindowDelegate(widget); | 212 return window_manager_->GetWindowDelegate(widget); |
216 } | 213 } |
217 | 214 |
218 } // namespace ui | 215 } // namespace ui |
OLD | NEW |