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

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

Issue 863253002: Update from https://crrev.com/312600 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 11 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 // This file is auto-generated from 5 // This file is auto-generated from
6 // gpu/command_buffer/build_gles2_cmd_buffer.py 6 // gpu/command_buffer/build_gles2_cmd_buffer.py
7 // It's formatted by clang-format using chromium coding style: 7 // It's formatted by clang-format using chromium coding style:
8 // clang-format -i -style=chromium filename 8 // clang-format -i -style=chromium filename
9 // DO NOT EDIT! 9 // DO NOT EDIT!
10 10
(...skipping 528 matching lines...) Expand 10 before | Expand all | Expand 10 after
539 } 539 }
540 }); 540 });
541 if (n < 0) { 541 if (n < 0) {
542 SetGLError(GL_INVALID_VALUE, "glDeleteSamplers", "n < 0"); 542 SetGLError(GL_INVALID_VALUE, "glDeleteSamplers", "n < 0");
543 return; 543 return;
544 } 544 }
545 DeleteSamplersHelper(n, samplers); 545 DeleteSamplersHelper(n, samplers);
546 CheckGLError(); 546 CheckGLError();
547 } 547 }
548 548
549 void GLES2Implementation::DeleteSync(GLsync sync) {
550 GPU_CLIENT_SINGLE_THREAD_CHECK();
551 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteSync(" << sync << ")");
552 GPU_CLIENT_DCHECK(sync != 0);
553 DeleteSyncHelper(sync);
554 CheckGLError();
555 }
556
549 void GLES2Implementation::DeleteShader(GLuint shader) { 557 void GLES2Implementation::DeleteShader(GLuint shader) {
550 GPU_CLIENT_SINGLE_THREAD_CHECK(); 558 GPU_CLIENT_SINGLE_THREAD_CHECK();
551 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteShader(" << shader << ")"); 559 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteShader(" << shader << ")");
552 GPU_CLIENT_DCHECK(shader != 0); 560 GPU_CLIENT_DCHECK(shader != 0);
553 DeleteShaderHelper(shader); 561 DeleteShaderHelper(shader);
554 CheckGLError(); 562 CheckGLError();
555 } 563 }
556 564
557 void GLES2Implementation::DeleteTextures(GLsizei n, const GLuint* textures) { 565 void GLES2Implementation::DeleteTextures(GLsizei n, const GLuint* textures) {
558 GPU_CLIENT_SINGLE_THREAD_CHECK(); 566 GPU_CLIENT_SINGLE_THREAD_CHECK();
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
624 } 632 }
625 633
626 void GLES2Implementation::DetachShader(GLuint program, GLuint shader) { 634 void GLES2Implementation::DetachShader(GLuint program, GLuint shader) {
627 GPU_CLIENT_SINGLE_THREAD_CHECK(); 635 GPU_CLIENT_SINGLE_THREAD_CHECK();
628 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDetachShader(" << program << ", " 636 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDetachShader(" << program << ", "
629 << shader << ")"); 637 << shader << ")");
630 helper_->DetachShader(program, shader); 638 helper_->DetachShader(program, shader);
631 CheckGLError(); 639 CheckGLError();
632 } 640 }
633 641
642 GLsync GLES2Implementation::FenceSync(GLenum condition, GLbitfield flags) {
643 GPU_CLIENT_SINGLE_THREAD_CHECK();
644 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glFenceSync("
645 << GLES2Util::GetStringSyncCondition(condition) << ", "
646 << flags << ")");
647 if (condition != 0x9117) {
648 SetGLError(GL_INVALID_ENUM, "glFenceSync", "condition GL_INVALID_ENUM");
649 return 0;
650 }
651 if (flags != 0) {
652 SetGLError(GL_INVALID_VALUE, "glFenceSync", "flags GL_INVALID_VALUE");
653 return 0;
654 }
655 GLuint client_id;
656 GetIdHandler(id_namespaces::kSyncs)->MakeIds(this, 0, 1, &client_id);
657 helper_->FenceSync(client_id);
658 GPU_CLIENT_LOG("returned " << client_id);
659 CheckGLError();
660 return reinterpret_cast<GLsync>(client_id);
661 }
662
634 void GLES2Implementation::FramebufferRenderbuffer(GLenum target, 663 void GLES2Implementation::FramebufferRenderbuffer(GLenum target,
635 GLenum attachment, 664 GLenum attachment,
636 GLenum renderbuffertarget, 665 GLenum renderbuffertarget,
637 GLuint renderbuffer) { 666 GLuint renderbuffer) {
638 GPU_CLIENT_SINGLE_THREAD_CHECK(); 667 GPU_CLIENT_SINGLE_THREAD_CHECK();
639 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glFramebufferRenderbuffer(" 668 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glFramebufferRenderbuffer("
640 << GLES2Util::GetStringFrameBufferTarget(target) << ", " 669 << GLES2Util::GetStringFrameBufferTarget(target) << ", "
641 << GLES2Util::GetStringAttachment(attachment) << ", " 670 << GLES2Util::GetStringAttachment(attachment) << ", "
642 << GLES2Util::GetStringRenderBufferTarget( 671 << GLES2Util::GetStringRenderBufferTarget(
643 renderbuffertarget) << ", " << renderbuffer << ")"); 672 renderbuffertarget) << ", " << renderbuffer << ")");
(...skipping 812 matching lines...) Expand 10 before | Expand all | Expand 10 after
1456 } 1485 }
1457 *result = 0; 1486 *result = 0;
1458 helper_->IsShader(shader, GetResultShmId(), GetResultShmOffset()); 1487 helper_->IsShader(shader, GetResultShmId(), GetResultShmOffset());
1459 WaitForCmd(); 1488 WaitForCmd();
1460 GLboolean result_value = *result != 0; 1489 GLboolean result_value = *result != 0;
1461 GPU_CLIENT_LOG("returned " << result_value); 1490 GPU_CLIENT_LOG("returned " << result_value);
1462 CheckGLError(); 1491 CheckGLError();
1463 return result_value; 1492 return result_value;
1464 } 1493 }
1465 1494
1495 GLboolean GLES2Implementation::IsSync(GLsync sync) {
1496 GPU_CLIENT_SINGLE_THREAD_CHECK();
1497 TRACE_EVENT0("gpu", "GLES2Implementation::IsSync");
1498 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsSync(" << sync << ")");
1499 typedef cmds::IsSync::Result Result;
1500 Result* result = GetResultAs<Result*>();
1501 if (!result) {
1502 return GL_FALSE;
1503 }
1504 *result = 0;
1505 helper_->IsSync(ToGLuint(sync), GetResultShmId(), GetResultShmOffset());
1506 WaitForCmd();
1507 GLboolean result_value = *result != 0;
1508 GPU_CLIENT_LOG("returned " << result_value);
1509 CheckGLError();
1510 return result_value;
1511 }
1512
1466 GLboolean GLES2Implementation::IsTexture(GLuint texture) { 1513 GLboolean GLES2Implementation::IsTexture(GLuint texture) {
1467 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1514 GPU_CLIENT_SINGLE_THREAD_CHECK();
1468 TRACE_EVENT0("gpu", "GLES2Implementation::IsTexture"); 1515 TRACE_EVENT0("gpu", "GLES2Implementation::IsTexture");
1469 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsTexture(" << texture << ")"); 1516 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsTexture(" << texture << ")");
1470 typedef cmds::IsTexture::Result Result; 1517 typedef cmds::IsTexture::Result Result;
1471 Result* result = GetResultAs<Result*>(); 1518 Result* result = GetResultAs<Result*>();
1472 if (!result) { 1519 if (!result) {
1473 return GL_FALSE; 1520 return GL_FALSE;
1474 } 1521 }
1475 *result = 0; 1522 *result = 0;
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
1639 return; 1686 return;
1640 } 1687 }
1641 if (height < 0) { 1688 if (height < 0) {
1642 SetGLError(GL_INVALID_VALUE, "glScissor", "height < 0"); 1689 SetGLError(GL_INVALID_VALUE, "glScissor", "height < 0");
1643 return; 1690 return;
1644 } 1691 }
1645 helper_->Scissor(x, y, width, height); 1692 helper_->Scissor(x, y, width, height);
1646 CheckGLError(); 1693 CheckGLError();
1647 } 1694 }
1648 1695
1696 void GLES2Implementation::ShaderSource(GLuint shader,
1697 GLsizei count,
1698 const GLchar* const* str,
1699 const GLint* length) {
1700 GPU_CLIENT_SINGLE_THREAD_CHECK();
1701 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glShaderSource(" << shader << ", "
1702 << count << ", " << static_cast<const void*>(str) << ", "
1703 << static_cast<const void*>(length) << ")");
1704 GPU_CLIENT_LOG_CODE_BLOCK({
1705 for (GLsizei ii = 0; ii < count; ++ii) {
1706 if (str[ii]) {
1707 if (length && length[ii] >= 0) {
1708 const std::string my_str(str[ii], length[ii]);
1709 GPU_CLIENT_LOG(" " << ii << ": ---\n" << my_str << "\n---");
1710 } else {
1711 GPU_CLIENT_LOG(" " << ii << ": ---\n" << str[ii] << "\n---");
1712 }
1713 } else {
1714 GPU_CLIENT_LOG(" " << ii << ": NULL");
1715 }
1716 }
1717 });
1718 if (count < 0) {
1719 SetGLError(GL_INVALID_VALUE, "glShaderSource", "count < 0");
1720 return;
1721 }
1722 // Compute the total size.
1723 base::CheckedNumeric<size_t> total_size = count;
1724 total_size += 1;
1725 total_size *= sizeof(GLint);
1726 if (!total_size.IsValid()) {
1727 SetGLError(GL_INVALID_VALUE, "glShaderSource", "overflow");
1728 return;
1729 }
1730 size_t header_size = total_size.ValueOrDefault(0);
1731 std::vector<GLint> header(count + 1);
1732 header[0] = static_cast<GLint>(count);
1733 for (GLsizei ii = 0; ii < count; ++ii) {
1734 GLint len = 0;
1735 if (str[ii]) {
1736 len = (length && length[ii] >= 0)
1737 ? length[ii]
1738 : base::checked_cast<GLint>(strlen(str[ii]));
1739 }
1740 total_size += len;
1741 total_size += 1; // NULL at the end of each char array.
1742 if (!total_size.IsValid()) {
1743 SetGLError(GL_INVALID_VALUE, "glShaderSource", "overflow");
1744 return;
1745 }
1746 header[ii + 1] = len;
1747 }
1748 // Pack data into a bucket on the service.
1749 helper_->SetBucketSize(kResultBucketId, total_size.ValueOrDefault(0));
1750 size_t offset = 0;
1751 for (GLsizei ii = 0; ii <= count; ++ii) {
1752 const char* src =
1753 (ii == 0) ? reinterpret_cast<const char*>(&header[0]) : str[ii - 1];
1754 base::CheckedNumeric<size_t> checked_size =
1755 (ii == 0) ? header_size : static_cast<size_t>(header[ii]);
1756 if (ii > 0) {
1757 checked_size += 1; // NULL in the end.
1758 }
1759 if (!checked_size.IsValid()) {
1760 SetGLError(GL_INVALID_VALUE, "glShaderSource", "overflow");
1761 return;
1762 }
1763 size_t size = checked_size.ValueOrDefault(0);
1764 while (size) {
1765 ScopedTransferBufferPtr buffer(size, helper_, transfer_buffer_);
1766 if (!buffer.valid() || buffer.size() == 0) {
1767 SetGLError(GL_OUT_OF_MEMORY, "glShaderSource", "too large");
1768 return;
1769 }
1770 size_t copy_size = buffer.size();
1771 if (ii > 0 && buffer.size() == size)
1772 --copy_size;
1773 if (copy_size)
1774 memcpy(buffer.address(), src, copy_size);
1775 if (copy_size < buffer.size()) {
1776 // Append NULL in the end.
1777 DCHECK(copy_size + 1 == buffer.size());
1778 char* str = reinterpret_cast<char*>(buffer.address());
1779 str[copy_size] = 0;
1780 }
1781 helper_->SetBucketData(kResultBucketId, offset, buffer.size(),
1782 buffer.shm_id(), buffer.offset());
1783 offset += buffer.size();
1784 src += buffer.size();
1785 size -= buffer.size();
1786 }
1787 }
1788 DCHECK_EQ(total_size.ValueOrDefault(0), offset);
1789 helper_->ShaderSourceBucket(shader, kResultBucketId);
1790 helper_->SetBucketSize(kResultBucketId, 0);
1791 CheckGLError();
1792 }
1793
1649 void GLES2Implementation::StencilFunc(GLenum func, GLint ref, GLuint mask) { 1794 void GLES2Implementation::StencilFunc(GLenum func, GLint ref, GLuint mask) {
1650 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1795 GPU_CLIENT_SINGLE_THREAD_CHECK();
1651 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilFunc(" 1796 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilFunc("
1652 << GLES2Util::GetStringCmpFunction(func) << ", " << ref 1797 << GLES2Util::GetStringCmpFunction(func) << ", " << ref
1653 << ", " << mask << ")"); 1798 << ", " << mask << ")");
1654 helper_->StencilFunc(func, ref, mask); 1799 helper_->StencilFunc(func, ref, mask);
1655 CheckGLError(); 1800 CheckGLError();
1656 } 1801 }
1657 1802
1658 void GLES2Implementation::StencilFuncSeparate(GLenum face, 1803 void GLES2Implementation::StencilFuncSeparate(GLenum face,
(...skipping 1522 matching lines...) Expand 10 before | Expand all | Expand 10 after
3181 3326
3182 void GLES2Implementation::BlendBarrierKHR() { 3327 void GLES2Implementation::BlendBarrierKHR() {
3183 GPU_CLIENT_SINGLE_THREAD_CHECK(); 3328 GPU_CLIENT_SINGLE_THREAD_CHECK();
3184 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendBarrierKHR(" 3329 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendBarrierKHR("
3185 << ")"); 3330 << ")");
3186 helper_->BlendBarrierKHR(); 3331 helper_->BlendBarrierKHR();
3187 CheckGLError(); 3332 CheckGLError();
3188 } 3333 }
3189 3334
3190 #endif // GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_IMPL_AUTOGEN_H_ 3335 #endif // GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_IMPL_AUTOGEN_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698