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

Side by Side Diff: third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp

Issue 2040773002: Upload textures through GPU path to non-8-bit color formats won't work in WebGL2 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 #include "modules/webgl/WebGL2RenderingContextBase.h" 5 #include "modules/webgl/WebGL2RenderingContextBase.h"
6 6
7 #include "bindings/modules/v8/WebGLAny.h" 7 #include "bindings/modules/v8/WebGLAny.h"
8 #include "core/frame/ImageBitmap.h" 8 #include "core/frame/ImageBitmap.h"
9 #include "core/html/HTMLCanvasElement.h" 9 #include "core/html/HTMLCanvasElement.h"
10 #include "core/html/HTMLImageElement.h" 10 #include "core/html/HTMLImageElement.h"
(...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after
454 break; 454 break;
455 default: 455 default:
456 synthesizeGLError(GL_INVALID_ENUM, functionName, "invalid attach ment"); 456 synthesizeGLError(GL_INVALID_ENUM, functionName, "invalid attach ment");
457 return false; 457 return false;
458 } 458 }
459 } 459 }
460 } 460 }
461 return true; 461 return true;
462 } 462 }
463 463
464 bool WebGL2RenderingContextBase::canUseTexImageCanvasByGPU(GLint internalformat, GLenum type)
465 {
466 switch (internalformat) {
467 case GL_RGB565:
468 case GL_RGBA4:
469 case GL_RGB5_A1:
470 // FIXME: ES3 limitation that CopyTexImage with sized internalformat,
471 // component sizes have to match the source color format.
472 return false;
473 default:
474 break;
475 }
476 return WebGLRenderingContextBase::canUseTexImageCanvasByGPU(internalformat, type);
477 }
478
464 void WebGL2RenderingContextBase::invalidateFramebuffer(GLenum target, const Vect or<GLenum>& attachments) 479 void WebGL2RenderingContextBase::invalidateFramebuffer(GLenum target, const Vect or<GLenum>& attachments)
465 { 480 {
466 if (isContextLost()) 481 if (isContextLost())
467 return; 482 return;
468 483
469 Vector<GLenum> translatedAttachments = attachments; 484 Vector<GLenum> translatedAttachments = attachments;
470 if (!checkAndTranslateAttachments("invalidateFramebuffer", target, translate dAttachments)) 485 if (!checkAndTranslateAttachments("invalidateFramebuffer", target, translate dAttachments))
471 return; 486 return;
472 contextGL()->InvalidateFramebuffer(target, translatedAttachments.size(), tra nslatedAttachments.data()); 487 contextGL()->InvalidateFramebuffer(target, translatedAttachments.size(), tra nslatedAttachments.data());
473 } 488 }
(...skipping 3129 matching lines...) Expand 10 before | Expand all | Expand 10 after
3603 params.skipPixels = m_unpackSkipPixels; 3618 params.skipPixels = m_unpackSkipPixels;
3604 params.skipRows = m_unpackSkipRows; 3619 params.skipRows = m_unpackSkipRows;
3605 if (dimension == Tex3D) { 3620 if (dimension == Tex3D) {
3606 params.imageHeight = m_unpackImageHeight; 3621 params.imageHeight = m_unpackImageHeight;
3607 params.skipImages = m_unpackSkipImages; 3622 params.skipImages = m_unpackSkipImages;
3608 } 3623 }
3609 return params; 3624 return params;
3610 } 3625 }
3611 3626
3612 } // namespace blink 3627 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698