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

Side by Side Diff: third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp

Issue 1832263002: Remove WGC3D typedefs and move WebGraphicsInfo to Platform. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: webgraphicsinfo: rebase Created 4 years, 8 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 /* 1 /*
2 * Copyright (c) 2010, Google Inc. All rights reserved. 2 * Copyright (c) 2010, Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 { 60 {
61 DEFINE_STATIC_LOCAL(WTF::RefCountedLeakCounter, staticDrawingBufferCounter, ("DrawingBuffer")); 61 DEFINE_STATIC_LOCAL(WTF::RefCountedLeakCounter, staticDrawingBufferCounter, ("DrawingBuffer"));
62 return staticDrawingBufferCounter; 62 return staticDrawingBufferCounter;
63 } 63 }
64 #endif 64 #endif
65 65
66 class ScopedTextureUnit0BindingRestorer { 66 class ScopedTextureUnit0BindingRestorer {
67 STACK_ALLOCATED(); 67 STACK_ALLOCATED();
68 WTF_MAKE_NONCOPYABLE(ScopedTextureUnit0BindingRestorer); 68 WTF_MAKE_NONCOPYABLE(ScopedTextureUnit0BindingRestorer);
69 public: 69 public:
70 ScopedTextureUnit0BindingRestorer(gpu::gles2::GLES2Interface* gl, GLenum act iveTextureUnit, Platform3DObject textureUnitZeroId) 70 ScopedTextureUnit0BindingRestorer(gpu::gles2::GLES2Interface* gl, GLenum act iveTextureUnit, GLuint textureUnitZeroId)
71 : m_gl(gl) 71 : m_gl(gl)
72 , m_oldActiveTextureUnit(activeTextureUnit) 72 , m_oldActiveTextureUnit(activeTextureUnit)
73 , m_oldTextureUnitZeroId(textureUnitZeroId) 73 , m_oldTextureUnitZeroId(textureUnitZeroId)
74 { 74 {
75 m_gl->ActiveTexture(GL_TEXTURE0); 75 m_gl->ActiveTexture(GL_TEXTURE0);
76 } 76 }
77 ~ScopedTextureUnit0BindingRestorer() 77 ~ScopedTextureUnit0BindingRestorer()
78 { 78 {
79 m_gl->BindTexture(GL_TEXTURE_2D, m_oldTextureUnitZeroId); 79 m_gl->BindTexture(GL_TEXTURE_2D, m_oldTextureUnitZeroId);
80 m_gl->ActiveTexture(m_oldActiveTextureUnit); 80 m_gl->ActiveTexture(m_oldActiveTextureUnit);
81 } 81 }
82 82
83 private: 83 private:
84 gpu::gles2::GLES2Interface* m_gl; 84 gpu::gles2::GLES2Interface* m_gl;
85 GLenum m_oldActiveTextureUnit; 85 GLenum m_oldActiveTextureUnit;
86 Platform3DObject m_oldTextureUnitZeroId; 86 GLuint m_oldTextureUnitZeroId;
87 }; 87 };
88 88
89 static bool shouldFailDrawingBufferCreationForTesting = false; 89 static bool shouldFailDrawingBufferCreationForTesting = false;
90 90
91 } // namespace 91 } // namespace
92 92
93 PassRefPtr<DrawingBuffer> DrawingBuffer::create(PassOwnPtr<WebGraphicsContext3DP rovider> contextProvider, const IntSize& size, PreserveDrawingBuffer preserve, W ebGraphicsContext3D::Attributes requestedAttributes) 93 PassRefPtr<DrawingBuffer> DrawingBuffer::create(PassOwnPtr<WebGraphicsContext3DP rovider> contextProvider, const IntSize& size, PreserveDrawingBuffer preserve, W ebGraphicsContext3D::Attributes requestedAttributes)
94 { 94 {
95 ASSERT(contextProvider); 95 ASSERT(contextProvider);
96 96
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 std::swap(frontColorBufferMailbox->textureInfo, m_colorBuffer); 289 std::swap(frontColorBufferMailbox->textureInfo, m_colorBuffer);
290 // It appears safe to overwrite the context's framebuffer binding in the Discard case since there will always be a 290 // It appears safe to overwrite the context's framebuffer binding in the Discard case since there will always be a
291 // WebGLRenderingContext::clearIfComposited() call made before the next draw call which restores the framebuffer binding. 291 // WebGLRenderingContext::clearIfComposited() call made before the next draw call which restores the framebuffer binding.
292 // If this stops being true at some point, we should track the current f ramebuffer binding in the DrawingBuffer and restore 292 // If this stops being true at some point, we should track the current f ramebuffer binding in the DrawingBuffer and restore
293 // it after attaching the new back buffer here. 293 // it after attaching the new back buffer here.
294 m_gl->BindFramebuffer(GL_FRAMEBUFFER, m_fbo); 294 m_gl->BindFramebuffer(GL_FRAMEBUFFER, m_fbo);
295 attachColorBufferToCurrentFBO(); 295 attachColorBufferToCurrentFBO();
296 296
297 if (m_discardFramebufferSupported) { 297 if (m_discardFramebufferSupported) {
298 // Explicitly discard framebuffer to save GPU memory bandwidth for t ile-based GPU arch. 298 // Explicitly discard framebuffer to save GPU memory bandwidth for t ile-based GPU arch.
299 const WGC3Denum attachments[3] = { GL_COLOR_ATTACHMENT0, GL_DEPTH_AT TACHMENT, GL_STENCIL_ATTACHMENT}; 299 const GLenum attachments[3] = { GL_COLOR_ATTACHMENT0, GL_DEPTH_ATTAC HMENT, GL_STENCIL_ATTACHMENT};
300 m_gl->DiscardFramebufferEXT(GL_FRAMEBUFFER, 3, attachments); 300 m_gl->DiscardFramebufferEXT(GL_FRAMEBUFFER, 3, attachments);
301 } 301 }
302 } else { 302 } else {
303 m_gl->CopyTextureCHROMIUM(m_colorBuffer.textureId, frontColorBufferMailb ox->textureInfo.textureId, frontColorBufferMailbox->textureInfo.parameters.inter nalColorFormat, GL_UNSIGNED_BYTE, GL_FALSE, GL_FALSE, GL_FALSE); 303 m_gl->CopyTextureCHROMIUM(m_colorBuffer.textureId, frontColorBufferMailb ox->textureInfo.textureId, frontColorBufferMailbox->textureInfo.parameters.inter nalColorFormat, GL_UNSIGNED_BYTE, GL_FALSE, GL_FALSE, GL_FALSE);
304 } 304 }
305 305
306 restoreFramebufferBindings(); 306 restoreFramebufferBindings();
307 m_contentsChanged = false; 307 m_contentsChanged = false;
308 308
309 m_gl->ProduceTextureDirectCHROMIUM(frontColorBufferMailbox->textureInfo.text ureId, frontColorBufferMailbox->textureInfo.parameters.target, frontColorBufferM ailbox->mailbox.name); 309 m_gl->ProduceTextureDirectCHROMIUM(frontColorBufferMailbox->textureInfo.text ureId, frontColorBufferMailbox->textureInfo.parameters.target, frontColorBufferM ailbox->mailbox.name);
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
473 m_gl->GenFramebuffers(1, &m_fbo); 473 m_gl->GenFramebuffers(1, &m_fbo);
474 474
475 m_gl->BindFramebuffer(GL_FRAMEBUFFER, m_fbo); 475 m_gl->BindFramebuffer(GL_FRAMEBUFFER, m_fbo);
476 createSecondaryBuffers(); 476 createSecondaryBuffers();
477 // We first try to initialize everything with the requested attributes. 477 // We first try to initialize everything with the requested attributes.
478 if (!reset(size)) 478 if (!reset(size))
479 return false; 479 return false;
480 // If that succeeds, we then see what we actually got and update our actual attributes to reflect that. 480 // If that succeeds, we then see what we actually got and update our actual attributes to reflect that.
481 m_actualAttributes = m_requestedAttributes; 481 m_actualAttributes = m_requestedAttributes;
482 if (m_requestedAttributes.alpha) { 482 if (m_requestedAttributes.alpha) {
483 WGC3Dint alphaBits = 0; 483 GLint alphaBits = 0;
484 m_gl->GetIntegerv(GL_ALPHA_BITS, &alphaBits); 484 m_gl->GetIntegerv(GL_ALPHA_BITS, &alphaBits);
485 m_actualAttributes.alpha = alphaBits > 0; 485 m_actualAttributes.alpha = alphaBits > 0;
486 } 486 }
487 if (m_requestedAttributes.depth) { 487 if (m_requestedAttributes.depth) {
488 WGC3Dint depthBits = 0; 488 GLint depthBits = 0;
489 m_gl->GetIntegerv(GL_DEPTH_BITS, &depthBits); 489 m_gl->GetIntegerv(GL_DEPTH_BITS, &depthBits);
490 m_actualAttributes.depth = depthBits > 0; 490 m_actualAttributes.depth = depthBits > 0;
491 } 491 }
492 if (m_requestedAttributes.stencil) { 492 if (m_requestedAttributes.stencil) {
493 WGC3Dint stencilBits = 0; 493 GLint stencilBits = 0;
494 m_gl->GetIntegerv(GL_STENCIL_BITS, &stencilBits); 494 m_gl->GetIntegerv(GL_STENCIL_BITS, &stencilBits);
495 m_actualAttributes.stencil = stencilBits > 0; 495 m_actualAttributes.stencil = stencilBits > 0;
496 } 496 }
497 m_actualAttributes.antialias = multisample(); 497 m_actualAttributes.antialias = multisample();
498 498
499 if (m_gl->GetGraphicsResetStatusKHR() != GL_NO_ERROR) { 499 if (m_gl->GetGraphicsResetStatusKHR() != GL_NO_ERROR) {
500 // It's possible that the drawing buffer allocation provokes a context l oss, so check again just in case. http://crbug.com/512302 500 // It's possible that the drawing buffer allocation provokes a context l oss, so check again just in case. http://crbug.com/512302
501 return false; 501 return false;
502 } 502 }
503 503
504 return true; 504 return true;
505 } 505 }
506 506
507 bool DrawingBuffer::copyToPlatformTexture(WebGraphicsContext3D* context, gpu::gl es2::GLES2Interface* gl, Platform3DObject texture, GLenum internalFormat, 507 bool DrawingBuffer::copyToPlatformTexture(WebGraphicsContext3D* context, gpu::gl es2::GLES2Interface* gl, GLuint texture, GLenum internalFormat,
508 GLenum destType, GLint level, bool premultiplyAlpha, bool flipY, SourceDrawi ngBuffer sourceBuffer) 508 GLenum destType, GLint level, bool premultiplyAlpha, bool flipY, SourceDrawi ngBuffer sourceBuffer)
509 { 509 {
510 if (m_contentsChanged) { 510 if (m_contentsChanged) {
511 if (m_antiAliasingMode != None) { 511 if (m_antiAliasingMode != None) {
512 commit(); 512 commit();
513 restoreFramebufferBindings(); 513 restoreFramebufferBindings();
514 } 514 }
515 m_gl->Flush(); 515 m_gl->Flush();
516 } 516 }
517 517
(...skipping 15 matching lines...) Expand all
533 m_gl->GenMailboxCHROMIUM(mailbox.name); 533 m_gl->GenMailboxCHROMIUM(mailbox.name);
534 m_gl->ProduceTextureDirectCHROMIUM(textureId, target, mailbox.name); 534 m_gl->ProduceTextureDirectCHROMIUM(textureId, target, mailbox.name);
535 const GLuint64 fenceSync = m_gl->InsertFenceSyncCHROMIUM(); 535 const GLuint64 fenceSync = m_gl->InsertFenceSyncCHROMIUM();
536 m_gl->Flush(); 536 m_gl->Flush();
537 m_gl->GenSyncTokenCHROMIUM(fenceSync, mailbox.syncToken); 537 m_gl->GenSyncTokenCHROMIUM(fenceSync, mailbox.syncToken);
538 mailbox.validSyncToken = true; 538 mailbox.validSyncToken = true;
539 } 539 }
540 540
541 if (mailbox.validSyncToken) 541 if (mailbox.validSyncToken)
542 gl->WaitSyncTokenCHROMIUM(mailbox.syncToken); 542 gl->WaitSyncTokenCHROMIUM(mailbox.syncToken);
543 Platform3DObject sourceTexture = gl->CreateAndConsumeTextureCHROMIUM(target, mailbox.name); 543 GLuint sourceTexture = gl->CreateAndConsumeTextureCHROMIUM(target, mailbox.n ame);
544 544
545 GLboolean unpackPremultiplyAlphaNeeded = GL_FALSE; 545 GLboolean unpackPremultiplyAlphaNeeded = GL_FALSE;
546 GLboolean unpackUnpremultiplyAlphaNeeded = GL_FALSE; 546 GLboolean unpackUnpremultiplyAlphaNeeded = GL_FALSE;
547 if (m_actualAttributes.alpha && m_actualAttributes.premultipliedAlpha && !pr emultiplyAlpha) 547 if (m_actualAttributes.alpha && m_actualAttributes.premultipliedAlpha && !pr emultiplyAlpha)
548 unpackUnpremultiplyAlphaNeeded = GL_TRUE; 548 unpackUnpremultiplyAlphaNeeded = GL_TRUE;
549 else if (m_actualAttributes.alpha && !m_actualAttributes.premultipliedAlpha && premultiplyAlpha) 549 else if (m_actualAttributes.alpha && !m_actualAttributes.premultipliedAlpha && premultiplyAlpha)
550 unpackPremultiplyAlphaNeeded = GL_TRUE; 550 unpackPremultiplyAlphaNeeded = GL_TRUE;
551 551
552 gl->CopyTextureCHROMIUM(sourceTexture, texture, internalFormat, destType, fl ipY, unpackPremultiplyAlphaNeeded, unpackUnpremultiplyAlphaNeeded); 552 gl->CopyTextureCHROMIUM(sourceTexture, texture, internalFormat, destType, fl ipY, unpackPremultiplyAlphaNeeded, unpackUnpremultiplyAlphaNeeded);
553 553
554 gl->DeleteTextures(1, &sourceTexture); 554 gl->DeleteTextures(1, &sourceTexture);
555 555
556 const GLuint64 fenceSync = gl->InsertFenceSyncCHROMIUM(); 556 const GLuint64 fenceSync = gl->InsertFenceSyncCHROMIUM();
557 557
558 gl->Flush(); 558 gl->Flush();
559 GLbyte syncToken[24]; 559 GLbyte syncToken[24];
560 gl->GenSyncTokenCHROMIUM(fenceSync, syncToken); 560 gl->GenSyncTokenCHROMIUM(fenceSync, syncToken);
561 m_gl->WaitSyncTokenCHROMIUM(syncToken); 561 m_gl->WaitSyncTokenCHROMIUM(syncToken);
562 562
563 return true; 563 return true;
564 } 564 }
565 565
566 Platform3DObject DrawingBuffer::framebuffer() const 566 GLuint DrawingBuffer::framebuffer() const
567 { 567 {
568 return m_fbo; 568 return m_fbo;
569 } 569 }
570 570
571 WebLayer* DrawingBuffer::platformLayer() 571 WebLayer* DrawingBuffer::platformLayer()
572 { 572 {
573 if (!m_layer) { 573 if (!m_layer) {
574 m_layer = adoptPtr(Platform::current()->compositorSupport()->createExter nalTextureLayer(this)); 574 m_layer = adoptPtr(Platform::current()->compositorSupport()->createExter nalTextureLayer(this));
575 575
576 m_layer->setOpaque(!m_actualAttributes.alpha); 576 m_layer->setOpaque(!m_actualAttributes.alpha);
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
624 m_frontColorBuffer = FrontBufferInfo(); 624 m_frontColorBuffer = FrontBufferInfo();
625 m_multisampleColorBuffer = 0; 625 m_multisampleColorBuffer = 0;
626 m_depthStencilBuffer = 0; 626 m_depthStencilBuffer = 0;
627 m_multisampleFBO = 0; 627 m_multisampleFBO = 0;
628 m_fbo = 0; 628 m_fbo = 0;
629 629
630 if (m_layer) 630 if (m_layer)
631 GraphicsLayer::unregisterContentsLayer(m_layer->layer()); 631 GraphicsLayer::unregisterContentsLayer(m_layer->layer());
632 } 632 }
633 633
634 WebGLId DrawingBuffer::createColorTexture(const TextureParameters& parameters) 634 GLuint DrawingBuffer::createColorTexture(const TextureParameters& parameters)
635 { 635 {
636 GLuint offscreenColorTexture; 636 GLuint offscreenColorTexture;
637 m_gl->GenTextures(1, &offscreenColorTexture); 637 m_gl->GenTextures(1, &offscreenColorTexture);
638 m_gl->BindTexture(parameters.target, offscreenColorTexture); 638 m_gl->BindTexture(parameters.target, offscreenColorTexture);
639 m_gl->TexParameteri(parameters.target, GL_TEXTURE_MAG_FILTER, GL_LINEAR); 639 m_gl->TexParameteri(parameters.target, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
640 m_gl->TexParameteri(parameters.target, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 640 m_gl->TexParameteri(parameters.target, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
641 m_gl->TexParameteri(parameters.target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); 641 m_gl->TexParameteri(parameters.target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
642 m_gl->TexParameteri(parameters.target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); 642 m_gl->TexParameteri(parameters.target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
643 return offscreenColorTexture; 643 return offscreenColorTexture;
644 } 644 }
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after
968 // https://crbug.com/581777. 968 // https://crbug.com/581777.
969 if (!m_requestedAttributes.alpha) 969 if (!m_requestedAttributes.alpha)
970 return createDefaultTextureAndAllocateMemory(size); 970 return createDefaultTextureAndAllocateMemory(size);
971 971
972 if (!RuntimeEnabledFeatures::webGLImageChromiumEnabled()) 972 if (!RuntimeEnabledFeatures::webGLImageChromiumEnabled())
973 return createDefaultTextureAndAllocateMemory(size); 973 return createDefaultTextureAndAllocateMemory(size);
974 974
975 // First, try to allocate a CHROMIUM_image. This always has the potential to 975 // First, try to allocate a CHROMIUM_image. This always has the potential to
976 // fail. 976 // fail.
977 TextureParameters parameters = chromiumImageTextureParameters(); 977 TextureParameters parameters = chromiumImageTextureParameters();
978 WGC3Duint imageId = m_gl->CreateGpuMemoryBufferImageCHROMIUM(size.width(), s ize.height(), parameters.internalColorFormat, GC3D_SCANOUT_CHROMIUM); 978 GLuint imageId = m_gl->CreateGpuMemoryBufferImageCHROMIUM(size.width(), size .height(), parameters.internalColorFormat, GC3D_SCANOUT_CHROMIUM);
979 if (!imageId) 979 if (!imageId)
980 return createDefaultTextureAndAllocateMemory(size); 980 return createDefaultTextureAndAllocateMemory(size);
981 981
982 WebGLId textureId = createColorTexture(parameters); 982 GLuint textureId = createColorTexture(parameters);
983 m_gl->BindTexImage2DCHROMIUM(parameters.target, imageId); 983 m_gl->BindTexImage2DCHROMIUM(parameters.target, imageId);
984 984
985 TextureInfo info; 985 TextureInfo info;
986 info.textureId = textureId; 986 info.textureId = textureId;
987 info.imageId = imageId; 987 info.imageId = imageId;
988 info.parameters = parameters; 988 info.parameters = parameters;
989 return info; 989 return info;
990 } 990 }
991 991
992 DrawingBuffer::TextureInfo DrawingBuffer::createDefaultTextureAndAllocateMemory( const IntSize& size) 992 DrawingBuffer::TextureInfo DrawingBuffer::createDefaultTextureAndAllocateMemory( const IntSize& size)
993 { 993 {
994 TextureParameters parameters = defaultTextureParameters(); 994 TextureParameters parameters = defaultTextureParameters();
995 WebGLId textureId = createColorTexture(parameters); 995 GLuint textureId = createColorTexture(parameters);
996 texImage2DResourceSafe(parameters.target, 0, parameters.internalColorFormat, size.width(), size.height(), 0, parameters.colorFormat, GL_UNSIGNED_BYTE); 996 texImage2DResourceSafe(parameters.target, 0, parameters.internalColorFormat, size.width(), size.height(), 0, parameters.colorFormat, GL_UNSIGNED_BYTE);
997 997
998 DrawingBuffer::TextureInfo info; 998 DrawingBuffer::TextureInfo info;
999 info.textureId = textureId; 999 info.textureId = textureId;
1000 info.parameters = parameters; 1000 info.parameters = parameters;
1001 return info; 1001 return info;
1002 } 1002 }
1003 1003
1004 void DrawingBuffer::resizeTextureMemory(TextureInfo* info, const IntSize& size) 1004 void DrawingBuffer::resizeTextureMemory(TextureInfo* info, const IntSize& size)
1005 { 1005 {
(...skipping 12 matching lines...) Expand all
1018 if (chromiumImageTextureParameters().target != defaultTextureParameters( ).target) 1018 if (chromiumImageTextureParameters().target != defaultTextureParameters( ).target)
1019 return; 1019 return;
1020 } 1020 }
1021 1021
1022 m_gl->BindTexture(info->parameters.target, info->textureId); 1022 m_gl->BindTexture(info->parameters.target, info->textureId);
1023 texImage2DResourceSafe(info->parameters.target, 0, info->parameters.internal ColorFormat, size.width(), size.height(), 0, info->parameters.colorFormat, GL_UN SIGNED_BYTE); 1023 texImage2DResourceSafe(info->parameters.target, 0, info->parameters.internal ColorFormat, size.width(), size.height(), 0, info->parameters.colorFormat, GL_UN SIGNED_BYTE);
1024 } 1024 }
1025 1025
1026 void DrawingBuffer::attachColorBufferToCurrentFBO() 1026 void DrawingBuffer::attachColorBufferToCurrentFBO()
1027 { 1027 {
1028 WGC3Denum target = m_colorBuffer.parameters.target; 1028 GLenum target = m_colorBuffer.parameters.target;
1029 1029
1030 m_gl->BindTexture(target, m_colorBuffer.textureId); 1030 m_gl->BindTexture(target, m_colorBuffer.textureId);
1031 1031
1032 if (m_antiAliasingMode == MSAAImplicitResolve) 1032 if (m_antiAliasingMode == MSAAImplicitResolve)
1033 m_gl->FramebufferTexture2DMultisampleEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACH MENT0, target, m_colorBuffer.textureId, 0, m_sampleCount); 1033 m_gl->FramebufferTexture2DMultisampleEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACH MENT0, target, m_colorBuffer.textureId, 0, m_sampleCount);
1034 else 1034 else
1035 m_gl->FramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, target, m_colorBuffer.textureId, 0); 1035 m_gl->FramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, target, m_colorBuffer.textureId, 0);
1036 1036
1037 m_gl->BindTexture(GL_TEXTURE_2D, m_texture2DBinding); 1037 m_gl->BindTexture(GL_TEXTURE_2D, m_texture2DBinding);
1038 } 1038 }
1039 1039
1040 } // namespace blink 1040 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698