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

Side by Side Diff: gpu/command_buffer/service/vertex_attrib_manager.h

Issue 1131273005: Fine tune vertex attrib commands handling. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: working Created 5 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 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 #ifndef GPU_COMMAND_BUFFER_SERVICE_VERTEX_ATTRIB_MANAGER_H_ 5 #ifndef GPU_COMMAND_BUFFER_SERVICE_VERTEX_ATTRIB_MANAGER_H_
6 #define GPU_COMMAND_BUFFER_SERVICE_VERTEX_ATTRIB_MANAGER_H_ 6 #define GPU_COMMAND_BUFFER_SERVICE_VERTEX_ATTRIB_MANAGER_H_
7 7
8 #include <list> 8 #include <list>
9 #include <vector> 9 #include <vector>
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 list_ = new_list; 109 list_ = new_list;
110 } 110 }
111 111
112 void SetInfo( 112 void SetInfo(
113 Buffer* buffer, 113 Buffer* buffer,
114 GLint size, 114 GLint size,
115 GLenum type, 115 GLenum type,
116 GLboolean normalized, 116 GLboolean normalized,
117 GLsizei gl_stride, 117 GLsizei gl_stride,
118 GLsizei real_stride, 118 GLsizei real_stride,
119 GLsizei offset); 119 GLsizei offset,
120 GLboolean integer);
120 121
121 void SetDivisor(GLsizei divisor) { 122 void SetDivisor(GLsizei divisor) {
122 divisor_ = divisor; 123 divisor_ = divisor;
123 } 124 }
124 125
125 void SetInteger(GLboolean integer) {
126 integer_ = integer;
127 }
128
129 void Unbind(Buffer* buffer); 126 void Unbind(Buffer* buffer);
130 127
131 // The index of this attrib. 128 // The index of this attrib.
132 GLuint index_; 129 GLuint index_;
133 130
134 // Whether or not this attribute is enabled. 131 // Whether or not this attribute is enabled.
135 bool enabled_; 132 bool enabled_;
136 133
137 // number of components (1, 2, 3, 4) 134 // number of components (1, 2, 3, 4)
138 GLint size_; 135 GLint size_;
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 } 197 }
201 198
202 void SetAttribInfo( 199 void SetAttribInfo(
203 GLuint index, 200 GLuint index,
204 Buffer* buffer, 201 Buffer* buffer,
205 GLint size, 202 GLint size,
206 GLenum type, 203 GLenum type,
207 GLboolean normalized, 204 GLboolean normalized,
208 GLsizei gl_stride, 205 GLsizei gl_stride,
209 GLsizei real_stride, 206 GLsizei real_stride,
210 GLsizei offset) { 207 GLsizei offset,
208 GLboolean integer) {
211 VertexAttrib* attrib = GetVertexAttrib(index); 209 VertexAttrib* attrib = GetVertexAttrib(index);
212 if (attrib) { 210 if (attrib) {
213 if (attrib->type() == GL_FIXED) { 211 if (attrib->type() == GL_FIXED) {
214 --num_fixed_attribs_; 212 --num_fixed_attribs_;
215 } 213 }
216 if (type == GL_FIXED) { 214 if (type == GL_FIXED) {
217 ++num_fixed_attribs_; 215 ++num_fixed_attribs_;
218 } 216 }
219 attrib->SetInfo( 217 attrib->SetInfo(buffer, size, type, normalized, gl_stride, real_stride,
220 buffer, size, type, normalized, gl_stride, real_stride, offset); 218 offset, integer);
221 } 219 }
222 } 220 }
223 221
224 void SetDivisor(GLuint index, GLuint divisor) { 222 void SetDivisor(GLuint index, GLuint divisor) {
225 VertexAttrib* attrib = GetVertexAttrib(index); 223 VertexAttrib* attrib = GetVertexAttrib(index);
226 if (attrib) { 224 if (attrib) {
227 attrib->SetDivisor(divisor); 225 attrib->SetDivisor(divisor);
228 } 226 }
229 } 227 }
230 228
231 void SetInteger(GLuint index, GLboolean integer) {
232 VertexAttrib* attrib = GetVertexAttrib(index);
233 if (attrib) {
234 attrib->SetInteger(integer);
235 }
236 }
237
238 void SetElementArrayBuffer(Buffer* buffer); 229 void SetElementArrayBuffer(Buffer* buffer);
239 230
240 Buffer* element_array_buffer() const { return element_array_buffer_.get(); } 231 Buffer* element_array_buffer() const { return element_array_buffer_.get(); }
241 232
242 GLuint service_id() const { 233 GLuint service_id() const {
243 return service_id_; 234 return service_id_;
244 } 235 }
245 236
246 void Unbind(Buffer* buffer); 237 void Unbind(Buffer* buffer);
247 238
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 295
305 // Service side vertex array object id. 296 // Service side vertex array object id.
306 GLuint service_id_; 297 GLuint service_id_;
307 }; 298 };
308 299
309 } // namespace gles2 300 } // namespace gles2
310 } // namespace gpu 301 } // namespace gpu
311 302
312 #endif // GPU_COMMAND_BUFFER_SERVICE_VERTEX_ATTRIB_MANAGER_H_ 303 #endif // GPU_COMMAND_BUFFER_SERVICE_VERTEX_ATTRIB_MANAGER_H_
313 304
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/gles2_cmd_decoder_autogen.h ('k') | gpu/command_buffer/service/vertex_attrib_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698