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

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

Issue 12326146: Refactor/Rename a bunch of GPU stuff (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 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 | Annotate | Revision Log
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 // A class to emulate GLES2 over command buffers. 5 // A class to emulate GLES2 over command buffers.
6 6
7 #include "../client/gles2_implementation.h" 7 #include "../client/gles2_implementation.h"
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <map> 10 #include <map>
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 break; 330 break;
331 } 331 }
332 } 332 }
333 error_bits_ &= ~GLES2Util::GLErrorToErrorBit(error); 333 error_bits_ &= ~GLES2Util::GLErrorToErrorBit(error);
334 return error; 334 return error;
335 } 335 }
336 336
337 GLenum GLES2Implementation::GetGLError() { 337 GLenum GLES2Implementation::GetGLError() {
338 TRACE_EVENT0("gpu", "GLES2::GetGLError"); 338 TRACE_EVENT0("gpu", "GLES2::GetGLError");
339 // Check the GL error first, then our wrapped error. 339 // Check the GL error first, then our wrapped error.
340 typedef gles2::GetError::Result Result; 340 typedef cmds::GetError::Result Result;
341 Result* result = GetResultAs<Result*>(); 341 Result* result = GetResultAs<Result*>();
342 // If we couldn't allocate a result the context is lost. 342 // If we couldn't allocate a result the context is lost.
343 if (!result) { 343 if (!result) {
344 return GL_NO_ERROR; 344 return GL_NO_ERROR;
345 } 345 }
346 *result = GL_NO_ERROR; 346 *result = GL_NO_ERROR;
347 helper_->GetError(GetResultShmId(), GetResultShmOffset()); 347 helper_->GetError(GetResultShmId(), GetResultShmOffset());
348 WaitForCmd(); 348 WaitForCmd();
349 GLenum error = *result; 349 GLenum error = *result;
350 if (error == GL_NO_ERROR) { 350 if (error == GL_NO_ERROR) {
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
515 } 515 }
516 CheckGLError(); 516 CheckGLError();
517 } 517 }
518 518
519 GLboolean GLES2Implementation::IsEnabled(GLenum cap) { 519 GLboolean GLES2Implementation::IsEnabled(GLenum cap) {
520 GPU_CLIENT_SINGLE_THREAD_CHECK(); 520 GPU_CLIENT_SINGLE_THREAD_CHECK();
521 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsEnabled(" 521 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsEnabled("
522 << GLES2Util::GetStringCapability(cap) << ")"); 522 << GLES2Util::GetStringCapability(cap) << ")");
523 bool state = false; 523 bool state = false;
524 if (!state_.GetEnabled(cap, &state)) { 524 if (!state_.GetEnabled(cap, &state)) {
525 typedef IsEnabled::Result Result; 525 typedef cmds::IsEnabled::Result Result;
526 Result* result = GetResultAs<Result*>(); 526 Result* result = GetResultAs<Result*>();
527 if (!result) { 527 if (!result) {
528 return GL_FALSE; 528 return GL_FALSE;
529 } 529 }
530 *result = 0; 530 *result = 0;
531 helper_->IsEnabled(cap, GetResultShmId(), GetResultShmOffset()); 531 helper_->IsEnabled(cap, GetResultShmId(), GetResultShmOffset());
532 WaitForCmd(); 532 WaitForCmd();
533 state = (*result) != 0; 533 state = (*result) != 0;
534 } 534 }
535 535
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
650 *params = static_cast<GLfloat>(value); 650 *params = static_cast<GLfloat>(value);
651 return true; 651 return true;
652 } 652 }
653 653
654 bool GLES2Implementation::GetIntegervHelper(GLenum pname, GLint* params) { 654 bool GLES2Implementation::GetIntegervHelper(GLenum pname, GLint* params) {
655 return GetHelper(pname, params); 655 return GetHelper(pname, params);
656 } 656 }
657 657
658 GLuint GLES2Implementation::GetMaxValueInBufferCHROMIUMHelper( 658 GLuint GLES2Implementation::GetMaxValueInBufferCHROMIUMHelper(
659 GLuint buffer_id, GLsizei count, GLenum type, GLuint offset) { 659 GLuint buffer_id, GLsizei count, GLenum type, GLuint offset) {
660 typedef GetMaxValueInBufferCHROMIUM::Result Result; 660 typedef cmds::GetMaxValueInBufferCHROMIUM::Result Result;
661 Result* result = GetResultAs<Result*>(); 661 Result* result = GetResultAs<Result*>();
662 if (!result) { 662 if (!result) {
663 return 0; 663 return 0;
664 } 664 }
665 *result = 0; 665 *result = 0;
666 helper_->GetMaxValueInBufferCHROMIUM( 666 helper_->GetMaxValueInBufferCHROMIUM(
667 buffer_id, count, type, offset, GetResultShmId(), GetResultShmOffset()); 667 buffer_id, count, type, offset, GetResultShmId(), GetResultShmOffset());
668 WaitForCmd(); 668 WaitForCmd();
669 return *result; 669 return *result;
670 } 670 }
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
898 898
899 void GLES2Implementation::GetVertexAttribPointerv( 899 void GLES2Implementation::GetVertexAttribPointerv(
900 GLuint index, GLenum pname, void** ptr) { 900 GLuint index, GLenum pname, void** ptr) {
901 GPU_CLIENT_SINGLE_THREAD_CHECK(); 901 GPU_CLIENT_SINGLE_THREAD_CHECK();
902 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetVertexAttribPointer(" 902 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetVertexAttribPointer("
903 << index << ", " << GLES2Util::GetStringVertexPointer(pname) << ", " 903 << index << ", " << GLES2Util::GetStringVertexPointer(pname) << ", "
904 << static_cast<void*>(ptr) << ")"); 904 << static_cast<void*>(ptr) << ")");
905 GPU_CLIENT_LOG_CODE_BLOCK(int32 num_results = 1); 905 GPU_CLIENT_LOG_CODE_BLOCK(int32 num_results = 1);
906 if (!vertex_array_object_manager_->GetAttribPointer(index, pname, ptr)) { 906 if (!vertex_array_object_manager_->GetAttribPointer(index, pname, ptr)) {
907 TRACE_EVENT0("gpu", "GLES2::GetVertexAttribPointerv"); 907 TRACE_EVENT0("gpu", "GLES2::GetVertexAttribPointerv");
908 typedef gles2::GetVertexAttribPointerv::Result Result; 908 typedef cmds::GetVertexAttribPointerv::Result Result;
909 Result* result = GetResultAs<Result*>(); 909 Result* result = GetResultAs<Result*>();
910 if (!result) { 910 if (!result) {
911 return; 911 return;
912 } 912 }
913 result->SetNumResults(0); 913 result->SetNumResults(0);
914 helper_->GetVertexAttribPointerv( 914 helper_->GetVertexAttribPointerv(
915 index, pname, GetResultShmId(), GetResultShmOffset()); 915 index, pname, GetResultShmId(), GetResultShmOffset());
916 WaitForCmd(); 916 WaitForCmd();
917 result->CopyResult(ptr); 917 result->CopyResult(ptr);
918 GPU_CLIENT_LOG_CODE_BLOCK(num_results = result->GetNumResults()); 918 GPU_CLIENT_LOG_CODE_BLOCK(num_results = result->GetNumResults());
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
960 void GLES2Implementation::DeleteShaderStub( 960 void GLES2Implementation::DeleteShaderStub(
961 GLsizei n, const GLuint* shaders) { 961 GLsizei n, const GLuint* shaders) {
962 GPU_DCHECK_EQ(1, n); 962 GPU_DCHECK_EQ(1, n);
963 share_group_->program_info_manager()->DeleteInfo(shaders[0]); 963 share_group_->program_info_manager()->DeleteInfo(shaders[0]);
964 helper_->DeleteShader(shaders[0]); 964 helper_->DeleteShader(shaders[0]);
965 } 965 }
966 966
967 967
968 GLint GLES2Implementation::GetAttribLocationHelper( 968 GLint GLES2Implementation::GetAttribLocationHelper(
969 GLuint program, const char* name) { 969 GLuint program, const char* name) {
970 typedef GetAttribLocationBucket::Result Result; 970 typedef cmds::GetAttribLocationBucket::Result Result;
971 Result* result = GetResultAs<Result*>(); 971 Result* result = GetResultAs<Result*>();
972 if (!result) { 972 if (!result) {
973 return -1; 973 return -1;
974 } 974 }
975 *result = -1; 975 *result = -1;
976 SetBucketAsCString(kResultBucketId, name); 976 SetBucketAsCString(kResultBucketId, name);
977 helper_->GetAttribLocationBucket( 977 helper_->GetAttribLocationBucket(
978 program, kResultBucketId, GetResultShmId(), GetResultShmOffset()); 978 program, kResultBucketId, GetResultShmId(), GetResultShmOffset());
979 WaitForCmd(); 979 WaitForCmd();
980 helper_->SetBucketSize(kResultBucketId, 0); 980 helper_->SetBucketSize(kResultBucketId, 0);
981 return *result; 981 return *result;
982 } 982 }
983 983
984 GLint GLES2Implementation::GetAttribLocation( 984 GLint GLES2Implementation::GetAttribLocation(
985 GLuint program, const char* name) { 985 GLuint program, const char* name) {
986 GPU_CLIENT_SINGLE_THREAD_CHECK(); 986 GPU_CLIENT_SINGLE_THREAD_CHECK();
987 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetAttribLocation(" << program 987 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetAttribLocation(" << program
988 << ", " << name << ")"); 988 << ", " << name << ")");
989 TRACE_EVENT0("gpu", "GLES2::GetAttribLocation"); 989 TRACE_EVENT0("gpu", "GLES2::GetAttribLocation");
990 GLint loc = share_group_->program_info_manager()->GetAttribLocation( 990 GLint loc = share_group_->program_info_manager()->GetAttribLocation(
991 this, program, name); 991 this, program, name);
992 GPU_CLIENT_LOG("returned " << loc); 992 GPU_CLIENT_LOG("returned " << loc);
993 CheckGLError(); 993 CheckGLError();
994 return loc; 994 return loc;
995 } 995 }
996 996
997 GLint GLES2Implementation::GetUniformLocationHelper( 997 GLint GLES2Implementation::GetUniformLocationHelper(
998 GLuint program, const char* name) { 998 GLuint program, const char* name) {
999 typedef GetUniformLocationBucket::Result Result; 999 typedef cmds::GetUniformLocationBucket::Result Result;
1000 Result* result = GetResultAs<Result*>(); 1000 Result* result = GetResultAs<Result*>();
1001 if (!result) { 1001 if (!result) {
1002 return -1; 1002 return -1;
1003 } 1003 }
1004 *result = -1; 1004 *result = -1;
1005 SetBucketAsCString(kResultBucketId, name); 1005 SetBucketAsCString(kResultBucketId, name);
1006 helper_->GetUniformLocationBucket(program, kResultBucketId, 1006 helper_->GetUniformLocationBucket(program, kResultBucketId,
1007 GetResultShmId(), GetResultShmOffset()); 1007 GetResultShmId(), GetResultShmOffset());
1008 WaitForCmd(); 1008 WaitForCmd();
1009 helper_->SetBucketSize(kResultBucketId, 0); 1009 helper_->SetBucketSize(kResultBucketId, 0);
(...skipping 734 matching lines...) Expand 10 before | Expand all | Expand 10 after
1744 source += num_rows * pixels_padded_row_size; 1744 source += num_rows * pixels_padded_row_size;
1745 height -= num_rows; 1745 height -= num_rows;
1746 } 1746 }
1747 } 1747 }
1748 1748
1749 bool GLES2Implementation::GetActiveAttribHelper( 1749 bool GLES2Implementation::GetActiveAttribHelper(
1750 GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, 1750 GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size,
1751 GLenum* type, char* name) { 1751 GLenum* type, char* name) {
1752 // Clear the bucket so if the command fails nothing will be in it. 1752 // Clear the bucket so if the command fails nothing will be in it.
1753 helper_->SetBucketSize(kResultBucketId, 0); 1753 helper_->SetBucketSize(kResultBucketId, 0);
1754 typedef gles2::GetActiveAttrib::Result Result; 1754 typedef cmds::GetActiveAttrib::Result Result;
1755 Result* result = GetResultAs<Result*>(); 1755 Result* result = GetResultAs<Result*>();
1756 if (!result) { 1756 if (!result) {
1757 return false; 1757 return false;
1758 } 1758 }
1759 // Set as failed so if the command fails we'll recover. 1759 // Set as failed so if the command fails we'll recover.
1760 result->success = false; 1760 result->success = false;
1761 helper_->GetActiveAttrib(program, index, kResultBucketId, 1761 helper_->GetActiveAttrib(program, index, kResultBucketId,
1762 GetResultShmId(), GetResultShmOffset()); 1762 GetResultShmId(), GetResultShmOffset());
1763 WaitForCmd(); 1763 WaitForCmd();
1764 if (result->success) { 1764 if (result->success) {
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1815 } 1815 }
1816 } 1816 }
1817 CheckGLError(); 1817 CheckGLError();
1818 } 1818 }
1819 1819
1820 bool GLES2Implementation::GetActiveUniformHelper( 1820 bool GLES2Implementation::GetActiveUniformHelper(
1821 GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, 1821 GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size,
1822 GLenum* type, char* name) { 1822 GLenum* type, char* name) {
1823 // Clear the bucket so if the command fails nothing will be in it. 1823 // Clear the bucket so if the command fails nothing will be in it.
1824 helper_->SetBucketSize(kResultBucketId, 0); 1824 helper_->SetBucketSize(kResultBucketId, 0);
1825 typedef gles2::GetActiveUniform::Result Result; 1825 typedef cmds::GetActiveUniform::Result Result;
1826 Result* result = GetResultAs<Result*>(); 1826 Result* result = GetResultAs<Result*>();
1827 if (!result) { 1827 if (!result) {
1828 return false; 1828 return false;
1829 } 1829 }
1830 // Set as failed so if the command fails we'll recover. 1830 // Set as failed so if the command fails we'll recover.
1831 result->success = false; 1831 result->success = false;
1832 helper_->GetActiveUniform(program, index, kResultBucketId, 1832 helper_->GetActiveUniform(program, index, kResultBucketId,
1833 GetResultShmId(), GetResultShmOffset()); 1833 GetResultShmId(), GetResultShmOffset());
1834 WaitForCmd(); 1834 WaitForCmd();
1835 if (result->success) { 1835 if (result->success) {
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
1893 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1893 GPU_CLIENT_SINGLE_THREAD_CHECK();
1894 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetAttachedShaders(" 1894 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetAttachedShaders("
1895 << program << ", " << maxcount << ", " 1895 << program << ", " << maxcount << ", "
1896 << static_cast<const void*>(count) << ", " 1896 << static_cast<const void*>(count) << ", "
1897 << static_cast<const void*>(shaders) << ", "); 1897 << static_cast<const void*>(shaders) << ", ");
1898 if (maxcount < 0) { 1898 if (maxcount < 0) {
1899 SetGLError(GL_INVALID_VALUE, "glGetAttachedShaders", "maxcount < 0"); 1899 SetGLError(GL_INVALID_VALUE, "glGetAttachedShaders", "maxcount < 0");
1900 return; 1900 return;
1901 } 1901 }
1902 TRACE_EVENT0("gpu", "GLES2::GetAttachedShaders"); 1902 TRACE_EVENT0("gpu", "GLES2::GetAttachedShaders");
1903 typedef gles2::GetAttachedShaders::Result Result; 1903 typedef cmds::GetAttachedShaders::Result Result;
1904 uint32 size = Result::ComputeSize(maxcount); 1904 uint32 size = Result::ComputeSize(maxcount);
1905 Result* result = static_cast<Result*>(transfer_buffer_->Alloc(size)); 1905 Result* result = static_cast<Result*>(transfer_buffer_->Alloc(size));
1906 if (!result) { 1906 if (!result) {
1907 return; 1907 return;
1908 } 1908 }
1909 result->SetNumResults(0); 1909 result->SetNumResults(0);
1910 helper_->GetAttachedShaders( 1910 helper_->GetAttachedShaders(
1911 program, 1911 program,
1912 transfer_buffer_->GetShmId(), 1912 transfer_buffer_->GetShmId(),
1913 transfer_buffer_->GetOffset(result), 1913 transfer_buffer_->GetOffset(result),
(...skipping 15 matching lines...) Expand all
1929 1929
1930 void GLES2Implementation::GetShaderPrecisionFormat( 1930 void GLES2Implementation::GetShaderPrecisionFormat(
1931 GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision) { 1931 GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision) {
1932 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1932 GPU_CLIENT_SINGLE_THREAD_CHECK();
1933 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetShaderPrecisionFormat(" 1933 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetShaderPrecisionFormat("
1934 << GLES2Util::GetStringShaderType(shadertype) << ", " 1934 << GLES2Util::GetStringShaderType(shadertype) << ", "
1935 << GLES2Util::GetStringShaderPrecision(precisiontype) << ", " 1935 << GLES2Util::GetStringShaderPrecision(precisiontype) << ", "
1936 << static_cast<const void*>(range) << ", " 1936 << static_cast<const void*>(range) << ", "
1937 << static_cast<const void*>(precision) << ", "); 1937 << static_cast<const void*>(precision) << ", ");
1938 TRACE_EVENT0("gpu", "GLES2::GetShaderPrecisionFormat"); 1938 TRACE_EVENT0("gpu", "GLES2::GetShaderPrecisionFormat");
1939 typedef gles2::GetShaderPrecisionFormat::Result Result; 1939 typedef cmds::GetShaderPrecisionFormat::Result Result;
1940 Result* result = GetResultAs<Result*>(); 1940 Result* result = GetResultAs<Result*>();
1941 if (!result) { 1941 if (!result) {
1942 return; 1942 return;
1943 } 1943 }
1944 result->success = false; 1944 result->success = false;
1945 helper_->GetShaderPrecisionFormat( 1945 helper_->GetShaderPrecisionFormat(
1946 shadertype, precisiontype, GetResultShmId(), GetResultShmOffset()); 1946 shadertype, precisiontype, GetResultShmId(), GetResultShmOffset());
1947 WaitForCmd(); 1947 WaitForCmd();
1948 if (result->success) { 1948 if (result->success) {
1949 if (range) { 1949 if (range) {
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
2016 return result; 2016 return result;
2017 } 2017 }
2018 2018
2019 void GLES2Implementation::GetUniformfv( 2019 void GLES2Implementation::GetUniformfv(
2020 GLuint program, GLint location, GLfloat* params) { 2020 GLuint program, GLint location, GLfloat* params) {
2021 GPU_CLIENT_SINGLE_THREAD_CHECK(); 2021 GPU_CLIENT_SINGLE_THREAD_CHECK();
2022 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetUniformfv(" 2022 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetUniformfv("
2023 << program << ", " << location << ", " 2023 << program << ", " << location << ", "
2024 << static_cast<const void*>(params) << ")"); 2024 << static_cast<const void*>(params) << ")");
2025 TRACE_EVENT0("gpu", "GLES2::GetUniformfv"); 2025 TRACE_EVENT0("gpu", "GLES2::GetUniformfv");
2026 typedef gles2::GetUniformfv::Result Result; 2026 typedef cmds::GetUniformfv::Result Result;
2027 Result* result = GetResultAs<Result*>(); 2027 Result* result = GetResultAs<Result*>();
2028 if (!result) { 2028 if (!result) {
2029 return; 2029 return;
2030 } 2030 }
2031 result->SetNumResults(0); 2031 result->SetNumResults(0);
2032 helper_->GetUniformfv( 2032 helper_->GetUniformfv(
2033 program, location, GetResultShmId(), GetResultShmOffset()); 2033 program, location, GetResultShmId(), GetResultShmOffset());
2034 WaitForCmd(); 2034 WaitForCmd();
2035 result->CopyResult(params); 2035 result->CopyResult(params);
2036 GPU_CLIENT_LOG_CODE_BLOCK({ 2036 GPU_CLIENT_LOG_CODE_BLOCK({
2037 for (int32 i = 0; i < result->GetNumResults(); ++i) { 2037 for (int32 i = 0; i < result->GetNumResults(); ++i) {
2038 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); 2038 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]);
2039 } 2039 }
2040 }); 2040 });
2041 CheckGLError(); 2041 CheckGLError();
2042 } 2042 }
2043 2043
2044 void GLES2Implementation::GetUniformiv( 2044 void GLES2Implementation::GetUniformiv(
2045 GLuint program, GLint location, GLint* params) { 2045 GLuint program, GLint location, GLint* params) {
2046 GPU_CLIENT_SINGLE_THREAD_CHECK(); 2046 GPU_CLIENT_SINGLE_THREAD_CHECK();
2047 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetUniformiv(" 2047 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetUniformiv("
2048 << program << ", " << location << ", " 2048 << program << ", " << location << ", "
2049 << static_cast<const void*>(params) << ")"); 2049 << static_cast<const void*>(params) << ")");
2050 TRACE_EVENT0("gpu", "GLES2::GetUniformiv"); 2050 TRACE_EVENT0("gpu", "GLES2::GetUniformiv");
2051 typedef gles2::GetUniformiv::Result Result; 2051 typedef cmds::GetUniformiv::Result Result;
2052 Result* result = GetResultAs<Result*>(); 2052 Result* result = GetResultAs<Result*>();
2053 if (!result) { 2053 if (!result) {
2054 return; 2054 return;
2055 } 2055 }
2056 result->SetNumResults(0); 2056 result->SetNumResults(0);
2057 helper_->GetUniformiv( 2057 helper_->GetUniformiv(
2058 program, location, GetResultShmId(), GetResultShmOffset()); 2058 program, location, GetResultShmId(), GetResultShmOffset());
2059 WaitForCmd(); 2059 WaitForCmd();
2060 GetResultAs<gles2::GetUniformfv::Result*>()->CopyResult(params); 2060 GetResultAs<cmds::GetUniformfv::Result*>()->CopyResult(params);
2061 GPU_CLIENT_LOG_CODE_BLOCK({ 2061 GPU_CLIENT_LOG_CODE_BLOCK({
2062 for (int32 i = 0; i < result->GetNumResults(); ++i) { 2062 for (int32 i = 0; i < result->GetNumResults(); ++i) {
2063 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); 2063 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]);
2064 } 2064 }
2065 }); 2065 });
2066 CheckGLError(); 2066 CheckGLError();
2067 } 2067 }
2068 2068
2069 void GLES2Implementation::ReadPixels( 2069 void GLES2Implementation::ReadPixels(
2070 GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, 2070 GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format,
(...skipping 13 matching lines...) Expand all
2084 return; 2084 return;
2085 } 2085 }
2086 2086
2087 // glReadPixel pads the size of each row of pixels by an amount specified by 2087 // glReadPixel pads the size of each row of pixels by an amount specified by
2088 // glPixelStorei. So, we have to take that into account both in the fact that 2088 // glPixelStorei. So, we have to take that into account both in the fact that
2089 // the pixels returned from the ReadPixel command will include that padding 2089 // the pixels returned from the ReadPixel command will include that padding
2090 // and that when we copy the results to the user's buffer we need to not 2090 // and that when we copy the results to the user's buffer we need to not
2091 // write those padding bytes but leave them as they are. 2091 // write those padding bytes but leave them as they are.
2092 2092
2093 TRACE_EVENT0("gpu", "GLES2::ReadPixels"); 2093 TRACE_EVENT0("gpu", "GLES2::ReadPixels");
2094 typedef gles2::ReadPixels::Result Result; 2094 typedef cmds::ReadPixels::Result Result;
2095 2095
2096 int8* dest = reinterpret_cast<int8*>(pixels); 2096 int8* dest = reinterpret_cast<int8*>(pixels);
2097 uint32 temp_size; 2097 uint32 temp_size;
2098 uint32 unpadded_row_size; 2098 uint32 unpadded_row_size;
2099 uint32 padded_row_size; 2099 uint32 padded_row_size;
2100 if (!GLES2Util::ComputeImageDataSizes( 2100 if (!GLES2Util::ComputeImageDataSizes(
2101 width, 2, format, type, pack_alignment_, &temp_size, &unpadded_row_size, 2101 width, 2, format, type, pack_alignment_, &temp_size, &unpadded_row_size,
2102 &padded_row_size)) { 2102 &padded_row_size)) {
2103 SetGLError(GL_INVALID_VALUE, "glReadPixels", "size too large."); 2103 SetGLError(GL_INVALID_VALUE, "glReadPixels", "size too large.");
2104 return; 2104 return;
(...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after
2510 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetVertexAttribfv(" 2510 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetVertexAttribfv("
2511 << index << ", " 2511 << index << ", "
2512 << GLES2Util::GetStringVertexAttribute(pname) << ", " 2512 << GLES2Util::GetStringVertexAttribute(pname) << ", "
2513 << static_cast<const void*>(params) << ")"); 2513 << static_cast<const void*>(params) << ")");
2514 uint32 value = 0; 2514 uint32 value = 0;
2515 if (vertex_array_object_manager_->GetVertexAttrib(index, pname, &value)) { 2515 if (vertex_array_object_manager_->GetVertexAttrib(index, pname, &value)) {
2516 *params = static_cast<float>(value); 2516 *params = static_cast<float>(value);
2517 return; 2517 return;
2518 } 2518 }
2519 TRACE_EVENT0("gpu", "GLES2::GetVertexAttribfv"); 2519 TRACE_EVENT0("gpu", "GLES2::GetVertexAttribfv");
2520 typedef GetVertexAttribfv::Result Result; 2520 typedef cmds::GetVertexAttribfv::Result Result;
2521 Result* result = GetResultAs<Result*>(); 2521 Result* result = GetResultAs<Result*>();
2522 if (!result) { 2522 if (!result) {
2523 return; 2523 return;
2524 } 2524 }
2525 result->SetNumResults(0); 2525 result->SetNumResults(0);
2526 helper_->GetVertexAttribfv( 2526 helper_->GetVertexAttribfv(
2527 index, pname, GetResultShmId(), GetResultShmOffset()); 2527 index, pname, GetResultShmId(), GetResultShmOffset());
2528 WaitForCmd(); 2528 WaitForCmd();
2529 result->CopyResult(params); 2529 result->CopyResult(params);
2530 GPU_CLIENT_LOG_CODE_BLOCK({ 2530 GPU_CLIENT_LOG_CODE_BLOCK({
(...skipping 10 matching lines...) Expand all
2541 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetVertexAttribiv(" 2541 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetVertexAttribiv("
2542 << index << ", " 2542 << index << ", "
2543 << GLES2Util::GetStringVertexAttribute(pname) << ", " 2543 << GLES2Util::GetStringVertexAttribute(pname) << ", "
2544 << static_cast<const void*>(params) << ")"); 2544 << static_cast<const void*>(params) << ")");
2545 uint32 value = 0; 2545 uint32 value = 0;
2546 if (vertex_array_object_manager_->GetVertexAttrib(index, pname, &value)) { 2546 if (vertex_array_object_manager_->GetVertexAttrib(index, pname, &value)) {
2547 *params = value; 2547 *params = value;
2548 return; 2548 return;
2549 } 2549 }
2550 TRACE_EVENT0("gpu", "GLES2::GetVertexAttribiv"); 2550 TRACE_EVENT0("gpu", "GLES2::GetVertexAttribiv");
2551 typedef GetVertexAttribiv::Result Result; 2551 typedef cmds::GetVertexAttribiv::Result Result;
2552 Result* result = GetResultAs<Result*>(); 2552 Result* result = GetResultAs<Result*>();
2553 if (!result) { 2553 if (!result) {
2554 return; 2554 return;
2555 } 2555 }
2556 result->SetNumResults(0); 2556 result->SetNumResults(0);
2557 helper_->GetVertexAttribiv( 2557 helper_->GetVertexAttribiv(
2558 index, pname, GetResultShmId(), GetResultShmOffset()); 2558 index, pname, GetResultShmId(), GetResultShmOffset());
2559 WaitForCmd(); 2559 WaitForCmd();
2560 result->CopyResult(params); 2560 result->CopyResult(params);
2561 GPU_CLIENT_LOG_CODE_BLOCK({ 2561 GPU_CLIENT_LOG_CODE_BLOCK({
2562 for (int32 i = 0; i < result->GetNumResults(); ++i) { 2562 for (int32 i = 0; i < result->GetNumResults(); ++i) {
2563 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); 2563 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]);
2564 } 2564 }
2565 }); 2565 });
2566 CheckGLError(); 2566 CheckGLError();
2567 } 2567 }
2568 2568
2569 GLboolean GLES2Implementation::EnableFeatureCHROMIUM( 2569 GLboolean GLES2Implementation::EnableFeatureCHROMIUM(
2570 const char* feature) { 2570 const char* feature) {
2571 GPU_CLIENT_SINGLE_THREAD_CHECK(); 2571 GPU_CLIENT_SINGLE_THREAD_CHECK();
2572 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glEnableFeatureCHROMIUM(" 2572 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glEnableFeatureCHROMIUM("
2573 << feature << ")"); 2573 << feature << ")");
2574 TRACE_EVENT0("gpu", "GLES2::EnableFeatureCHROMIUM"); 2574 TRACE_EVENT0("gpu", "GLES2::EnableFeatureCHROMIUM");
2575 typedef EnableFeatureCHROMIUM::Result Result; 2575 typedef cmds::EnableFeatureCHROMIUM::Result Result;
2576 Result* result = GetResultAs<Result*>(); 2576 Result* result = GetResultAs<Result*>();
2577 if (!result) { 2577 if (!result) {
2578 return false; 2578 return false;
2579 } 2579 }
2580 *result = 0; 2580 *result = 0;
2581 SetBucketAsCString(kResultBucketId, feature); 2581 SetBucketAsCString(kResultBucketId, feature);
2582 helper_->EnableFeatureCHROMIUM( 2582 helper_->EnableFeatureCHROMIUM(
2583 kResultBucketId, GetResultShmId(), GetResultShmOffset()); 2583 kResultBucketId, GetResultShmId(), GetResultShmOffset());
2584 WaitForCmd(); 2584 WaitForCmd();
2585 helper_->SetBucketSize(kResultBucketId, 0); 2585 helper_->SetBucketSize(kResultBucketId, 0);
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after
2901 return; 2901 return;
2902 } 2902 }
2903 memcpy(info, &result[0], result.size()); 2903 memcpy(info, &result[0], result.size());
2904 } 2904 }
2905 2905
2906 GLuint GLES2Implementation::CreateStreamTextureCHROMIUM(GLuint texture) { 2906 GLuint GLES2Implementation::CreateStreamTextureCHROMIUM(GLuint texture) {
2907 GPU_CLIENT_SINGLE_THREAD_CHECK(); 2907 GPU_CLIENT_SINGLE_THREAD_CHECK();
2908 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] CreateStreamTextureCHROMIUM(" 2908 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] CreateStreamTextureCHROMIUM("
2909 << texture << ")"); 2909 << texture << ")");
2910 TRACE_EVENT0("gpu", "GLES2::CreateStreamTextureCHROMIUM"); 2910 TRACE_EVENT0("gpu", "GLES2::CreateStreamTextureCHROMIUM");
2911 typedef CreateStreamTextureCHROMIUM::Result Result; 2911 typedef cmds::CreateStreamTextureCHROMIUM::Result Result;
2912 Result* result = GetResultAs<Result*>(); 2912 Result* result = GetResultAs<Result*>();
2913 if (!result) { 2913 if (!result) {
2914 return GL_ZERO; 2914 return GL_ZERO;
2915 } 2915 }
2916 *result = GL_ZERO; 2916 *result = GL_ZERO;
2917 2917
2918 helper_->CreateStreamTextureCHROMIUM(texture, 2918 helper_->CreateStreamTextureCHROMIUM(texture,
2919 GetResultShmId(), 2919 GetResultShmId(),
2920 GetResultShmOffset()); 2920 GetResultShmOffset());
2921 WaitForCmd(); 2921 WaitForCmd();
(...skipping 517 matching lines...) Expand 10 before | Expand all | Expand 10 after
3439 return; 3439 return;
3440 } 3440 }
3441 3441
3442 // Include the auto-generated part of this file. We split this because it means 3442 // Include the auto-generated part of this file. We split this because it means
3443 // we can easily edit the non-auto generated parts right here in this file 3443 // we can easily edit the non-auto generated parts right here in this file
3444 // instead of having to edit some template or the code generator. 3444 // instead of having to edit some template or the code generator.
3445 #include "../client/gles2_implementation_impl_autogen.h" 3445 #include "../client/gles2_implementation_impl_autogen.h"
3446 3446
3447 } // namespace gles2 3447 } // namespace gles2
3448 } // namespace gpu 3448 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/client/gles2_cmd_helper_autogen.h ('k') | gpu/command_buffer/client/gles2_implementation_impl_autogen.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698