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

Side by Side Diff: gpu/command_buffer/client/gles2_implementation.h

Issue 8513017: Add GL_ANGLE_pack_reverse_row_order to command buffer (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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_CLIENT_GLES2_IMPLEMENTATION_H_ 5 #ifndef GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_H_
6 #define GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_H_ 6 #define GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_H_
7 7
8 #include <GLES2/gl2.h> 8 #include <GLES2/gl2.h>
9 9
10 #include <map> 10 #include <map>
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 195
196 void FreeTextureId(GLuint id) { 196 void FreeTextureId(GLuint id) {
197 id_handlers_[id_namespaces::kTextures]->FreeIds(1, &id); 197 id_handlers_[id_namespaces::kTextures]->FreeIds(1, &id);
198 } 198 }
199 199
200 void SetSharedMemoryChunkSizeMultiple(unsigned int multiple); 200 void SetSharedMemoryChunkSizeMultiple(unsigned int multiple);
201 201
202 void FreeUnusedSharedMemory(); 202 void FreeUnusedSharedMemory();
203 203
204 private: 204 private:
205
206 // Used to track whether an extension is available
207 enum ExtensionStatus {
208 kAvailableExtensionStatus,
209 kUnavailableExtensionStatus,
210 kUnknownExtensionStatus
211 };
212
205 // Wraps RingBufferWrapper to provide aligned allocations. 213 // Wraps RingBufferWrapper to provide aligned allocations.
206 class AlignedRingBuffer : public RingBufferWrapper { 214 class AlignedRingBuffer : public RingBufferWrapper {
207 public: 215 public:
208 AlignedRingBuffer(RingBuffer::Offset base_offset, 216 AlignedRingBuffer(RingBuffer::Offset base_offset,
209 unsigned int size, 217 unsigned int size,
210 CommandBufferHelper *helper, 218 CommandBufferHelper *helper,
211 void *base) 219 void *base)
212 : RingBufferWrapper(base_offset, size, helper, base) { 220 : RingBufferWrapper(base_offset, size, helper, base) {
213 } 221 }
214 222
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 uint32 result_shm_offset() const { 339 uint32 result_shm_offset() const {
332 return result_shm_offset_; 340 return result_shm_offset_;
333 } 341 }
334 342
335 // Gets the value of the result. 343 // Gets the value of the result.
336 template <typename T> 344 template <typename T>
337 T GetResultAs() const { 345 T GetResultAs() const {
338 return static_cast<T>(result_buffer_); 346 return static_cast<T>(result_buffer_);
339 } 347 }
340 348
349 // Lazily determines if GL_ANGLE_pack_reverse_row_order is available
350 bool IsAnglePackReverseRowOrderAvailable();
351
341 // Gets the GLError through our wrapper. 352 // Gets the GLError through our wrapper.
342 GLenum GetGLError(); 353 GLenum GetGLError();
343 354
344 // Sets our wrapper for the GLError. 355 // Sets our wrapper for the GLError.
345 void SetGLError(GLenum error, const char* msg); 356 void SetGLError(GLenum error, const char* msg);
346 357
347 // Returns the last error and clears it. Useful for debugging. 358 // Returns the last error and clears it. Useful for debugging.
348 const std::string& GetLastError() { 359 const std::string& GetLastError() {
349 return last_error_; 360 return last_error_;
350 } 361 }
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
425 scoped_ptr<IdHandlerInterface> id_handlers_[id_namespaces::kNumIdNamespaces]; 436 scoped_ptr<IdHandlerInterface> id_handlers_[id_namespaces::kNumIdNamespaces];
426 AlignedRingBuffer transfer_buffer_; 437 AlignedRingBuffer transfer_buffer_;
427 int transfer_buffer_id_; 438 int transfer_buffer_id_;
428 void* result_buffer_; 439 void* result_buffer_;
429 uint32 result_shm_offset_; 440 uint32 result_shm_offset_;
430 std::string last_error_; 441 std::string last_error_;
431 442
432 std::queue<int32> swap_buffers_tokens_; 443 std::queue<int32> swap_buffers_tokens_;
433 std::queue<int32> rate_limit_tokens_; 444 std::queue<int32> rate_limit_tokens_;
434 445
446 ExtensionStatus angle_pack_reverse_row_order_status;
447
435 GLState gl_state_; 448 GLState gl_state_;
436 449
437 // pack alignment as last set by glPixelStorei 450 // pack alignment as last set by glPixelStorei
438 GLint pack_alignment_; 451 GLint pack_alignment_;
439 452
440 // unpack alignment as last set by glPixelStorei 453 // unpack alignment as last set by glPixelStorei
441 GLint unpack_alignment_; 454 GLint unpack_alignment_;
442 455
443 // unpack yflip as last set by glPixelstorei 456 // unpack yflip as last set by glPixelstorei
444 bool unpack_flip_y_; 457 bool unpack_flip_y_;
445 458
459 // pack reverse row order as last set by glPixelstorei
460 bool pack_reverse_row_order_;
461
446 scoped_array<TextureUnit> texture_units_; 462 scoped_array<TextureUnit> texture_units_;
447 463
448 // 0 to gl_state_.max_combined_texture_image_units. 464 // 0 to gl_state_.max_combined_texture_image_units.
449 GLuint active_texture_unit_; 465 GLuint active_texture_unit_;
450 466
451 GLuint bound_framebuffer_; 467 GLuint bound_framebuffer_;
452 GLuint bound_renderbuffer_; 468 GLuint bound_renderbuffer_;
453 469
454 // The currently bound array buffer. 470 // The currently bound array buffer.
455 GLuint bound_array_buffer_id_; 471 GLuint bound_array_buffer_id_;
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
530 546
531 inline bool GLES2Implementation::GetTexParameterivHelper( 547 inline bool GLES2Implementation::GetTexParameterivHelper(
532 GLenum /* target */, GLenum /* pname */, GLint* /* params */) { 548 GLenum /* target */, GLenum /* pname */, GLint* /* params */) {
533 return false; 549 return false;
534 } 550 }
535 551
536 } // namespace gles2 552 } // namespace gles2
537 } // namespace gpu 553 } // namespace gpu
538 554
539 #endif // GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_H_ 555 #endif // GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698