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 // A class to emulate GLES2 over command buffers. | 5 // A class to emulate GLES2 over command buffers. |
6 | 6 |
7 #include "gpu/command_buffer/client/gles2_implementation.h" | 7 #include "gpu/command_buffer/client/gles2_implementation.h" |
8 | 8 |
9 #include <GLES2/gl2ext.h> | 9 #include <GLES2/gl2ext.h> |
10 #include <GLES2/gl2extchromium.h> | 10 #include <GLES2/gl2extchromium.h> |
(...skipping 833 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
844 if (!vertex_array_object_manager_->SetupSimulatedIndexAndClientSideBuffers( | 844 if (!vertex_array_object_manager_->SetupSimulatedIndexAndClientSideBuffers( |
845 "glDrawElements", this, helper_, count, type, 0, indices, | 845 "glDrawElements", this, helper_, count, type, 0, indices, |
846 &offset, &simulated)) { | 846 &offset, &simulated)) { |
847 return; | 847 return; |
848 } | 848 } |
849 helper_->DrawElements(mode, count, type, offset); | 849 helper_->DrawElements(mode, count, type, offset); |
850 RestoreElementAndArrayBuffers(simulated); | 850 RestoreElementAndArrayBuffers(simulated); |
851 CheckGLError(); | 851 CheckGLError(); |
852 } | 852 } |
853 | 853 |
| 854 void GLES2Implementation::DrawRangeElements( |
| 855 GLenum mode, GLuint start, GLuint end, |
| 856 GLsizei count, GLenum type, const void* indices) { |
| 857 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
| 858 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDrawRangeElements(" |
| 859 << GLES2Util::GetStringDrawMode(mode) << ", " |
| 860 << start << ", " << end << ", " << count << ", " |
| 861 << GLES2Util::GetStringIndexType(type) << ", " |
| 862 << static_cast<const void*>(indices) << ")"); |
| 863 // TODO(zmo): mImplement client side data support. |
| 864 // crbug.com/461871 |
| 865 helper_->DrawRangeElements(mode, start, end, count, type, ToGLuint(indices)); |
| 866 CheckGLError(); |
| 867 } |
| 868 |
854 void GLES2Implementation::Flush() { | 869 void GLES2Implementation::Flush() { |
855 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 870 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
856 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glFlush()"); | 871 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glFlush()"); |
857 // Insert the cmd to call glFlush | 872 // Insert the cmd to call glFlush |
858 helper_->Flush(); | 873 helper_->Flush(); |
859 // Flush our command buffer | 874 // Flush our command buffer |
860 // (tell the service to execute up to the flush cmd.) | 875 // (tell the service to execute up to the flush cmd.) |
861 helper_->CommandBufferHelper::Flush(); | 876 helper_->CommandBufferHelper::Flush(); |
862 } | 877 } |
863 | 878 |
(...skipping 4127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4991 CheckGLError(); | 5006 CheckGLError(); |
4992 } | 5007 } |
4993 | 5008 |
4994 // Include the auto-generated part of this file. We split this because it means | 5009 // Include the auto-generated part of this file. We split this because it means |
4995 // we can easily edit the non-auto generated parts right here in this file | 5010 // we can easily edit the non-auto generated parts right here in this file |
4996 // instead of having to edit some template or the code generator. | 5011 // instead of having to edit some template or the code generator. |
4997 #include "gpu/command_buffer/client/gles2_implementation_impl_autogen.h" | 5012 #include "gpu/command_buffer/client/gles2_implementation_impl_autogen.h" |
4998 | 5013 |
4999 } // namespace gles2 | 5014 } // namespace gles2 |
5000 } // namespace gpu | 5015 } // namespace gpu |
OLD | NEW |