OLD | NEW |
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/service/context_group.h" | 5 #include "gpu/command_buffer/service/context_group.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
106 if (feature_info_->feature_flags().ext_draw_buffers) { | 106 if (feature_info_->feature_flags().ext_draw_buffers) { |
107 GetIntegerv(GL_MAX_COLOR_ATTACHMENTS_EXT, &max_color_attachments_); | 107 GetIntegerv(GL_MAX_COLOR_ATTACHMENTS_EXT, &max_color_attachments_); |
108 if (max_color_attachments_ < 1) | 108 if (max_color_attachments_ < 1) |
109 max_color_attachments_ = 1; | 109 max_color_attachments_ = 1; |
110 GetIntegerv(GL_MAX_DRAW_BUFFERS_ARB, &max_draw_buffers_); | 110 GetIntegerv(GL_MAX_DRAW_BUFFERS_ARB, &max_draw_buffers_); |
111 if (max_draw_buffers_ < 1) | 111 if (max_draw_buffers_ < 1) |
112 max_draw_buffers_ = 1; | 112 max_draw_buffers_ = 1; |
113 draw_buffer_ = GL_BACK; | 113 draw_buffer_ = GL_BACK; |
114 } | 114 } |
115 | 115 |
116 buffer_manager_.reset(new BufferManager( | 116 buffer_manager_.reset( |
117 memory_tracker_, feature_info_.get())); | 117 new BufferManager(memory_tracker_.get(), feature_info_.get())); |
118 framebuffer_manager_.reset( | 118 framebuffer_manager_.reset( |
119 new FramebufferManager(max_draw_buffers_, max_color_attachments_)); | 119 new FramebufferManager(max_draw_buffers_, max_color_attachments_)); |
120 renderbuffer_manager_.reset(new RenderbufferManager(memory_tracker_, | 120 renderbuffer_manager_.reset(new RenderbufferManager( |
121 max_renderbuffer_size, | 121 memory_tracker_.get(), max_renderbuffer_size, max_samples)); |
122 max_samples)); | |
123 shader_manager_.reset(new ShaderManager()); | 122 shader_manager_.reset(new ShaderManager()); |
124 program_manager_.reset(new ProgramManager(program_cache_)); | 123 program_manager_.reset(new ProgramManager(program_cache_)); |
125 | 124 |
126 // Lookup GL things we need to know. | 125 // Lookup GL things we need to know. |
127 const GLint kGLES2RequiredMinimumVertexAttribs = 8u; | 126 const GLint kGLES2RequiredMinimumVertexAttribs = 8u; |
128 if (!QueryGLFeatureU( | 127 if (!QueryGLFeatureU( |
129 GL_MAX_VERTEX_ATTRIBS, kGLES2RequiredMinimumVertexAttribs, | 128 GL_MAX_VERTEX_ATTRIBS, kGLES2RequiredMinimumVertexAttribs, |
130 &max_vertex_attribs_)) { | 129 &max_vertex_attribs_)) { |
131 LOG(ERROR) << "ContextGroup::Initialize failed because too few " | 130 LOG(ERROR) << "ContextGroup::Initialize failed because too few " |
132 << "vertex attributes supported."; | 131 << "vertex attributes supported."; |
(...skipping 26 matching lines...) Expand all Loading... |
159 if (feature_info_->workarounds().max_texture_size) { | 158 if (feature_info_->workarounds().max_texture_size) { |
160 max_texture_size = std::min( | 159 max_texture_size = std::min( |
161 max_texture_size, feature_info_->workarounds().max_texture_size); | 160 max_texture_size, feature_info_->workarounds().max_texture_size); |
162 } | 161 } |
163 if (feature_info_->workarounds().max_cube_map_texture_size) { | 162 if (feature_info_->workarounds().max_cube_map_texture_size) { |
164 max_cube_map_texture_size = std::min( | 163 max_cube_map_texture_size = std::min( |
165 max_cube_map_texture_size, | 164 max_cube_map_texture_size, |
166 feature_info_->workarounds().max_cube_map_texture_size); | 165 feature_info_->workarounds().max_cube_map_texture_size); |
167 } | 166 } |
168 | 167 |
169 texture_manager_.reset(new TextureManager(memory_tracker_, | 168 texture_manager_.reset(new TextureManager(memory_tracker_.get(), |
170 feature_info_.get(), | 169 feature_info_.get(), |
171 max_texture_size, | 170 max_texture_size, |
172 max_cube_map_texture_size)); | 171 max_cube_map_texture_size)); |
173 texture_manager_->set_framebuffer_manager(framebuffer_manager_.get()); | 172 texture_manager_->set_framebuffer_manager(framebuffer_manager_.get()); |
174 | 173 |
175 const GLint kMinTextureImageUnits = 8; | 174 const GLint kMinTextureImageUnits = 8; |
176 const GLint kMinVertexTextureImageUnits = 0; | 175 const GLint kMinVertexTextureImageUnits = 0; |
177 if (!QueryGLFeatureU( | 176 if (!QueryGLFeatureU( |
178 GL_MAX_TEXTURE_IMAGE_UNITS, kMinTextureImageUnits, | 177 GL_MAX_TEXTURE_IMAGE_UNITS, kMinTextureImageUnits, |
179 &max_texture_image_units_) || | 178 &max_texture_image_units_) || |
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
354 GLenum pname, GLint min_required, uint32* v) { | 353 GLenum pname, GLint min_required, uint32* v) { |
355 uint32 value = 0; | 354 uint32 value = 0; |
356 GetIntegerv(pname, &value); | 355 GetIntegerv(pname, &value); |
357 bool result = CheckGLFeatureU(min_required, &value); | 356 bool result = CheckGLFeatureU(min_required, &value); |
358 *v = value; | 357 *v = value; |
359 return result; | 358 return result; |
360 } | 359 } |
361 | 360 |
362 } // namespace gles2 | 361 } // namespace gles2 |
363 } // namespace gpu | 362 } // namespace gpu |
OLD | NEW |