OLD | NEW |
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 467 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
478 m_antiAliasingMode = None; | 478 m_antiAliasingMode = None; |
479 if (useMultisampling) { | 479 if (useMultisampling) { |
480 m_gl->GetIntegerv(GL_MAX_SAMPLES_ANGLE, &maxSampleCount); | 480 m_gl->GetIntegerv(GL_MAX_SAMPLES_ANGLE, &maxSampleCount); |
481 m_antiAliasingMode = MSAAExplicitResolve; | 481 m_antiAliasingMode = MSAAExplicitResolve; |
482 if (m_extensionsUtil->supportsExtension("GL_EXT_multisampled_render_to_t
exture")) { | 482 if (m_extensionsUtil->supportsExtension("GL_EXT_multisampled_render_to_t
exture")) { |
483 m_antiAliasingMode = MSAAImplicitResolve; | 483 m_antiAliasingMode = MSAAImplicitResolve; |
484 } else if (m_extensionsUtil->supportsExtension("GL_CHROMIUM_screen_space
_antialiasing")) { | 484 } else if (m_extensionsUtil->supportsExtension("GL_CHROMIUM_screen_space
_antialiasing")) { |
485 m_antiAliasingMode = ScreenSpaceAntialiasing; | 485 m_antiAliasingMode = ScreenSpaceAntialiasing; |
486 } | 486 } |
487 } | 487 } |
488 // TODO(dshwang): enable storage texture on all platform. crbug.com/557848 | 488 m_storageTextureSupported = m_webGLVersion > WebGL1 || m_extensionsUtil->sup
portsExtension("GL_EXT_texture_storage"); |
489 // Linux ATI bot fails WebglConformance.conformance_textures_misc_tex_image_
webgl | |
490 // So use storage texture only if ScreenSpaceAntialiasing is enabled, | |
491 // because ScreenSpaceAntialiasing is much faster with storage texture. | |
492 m_storageTextureSupported = (m_webGLVersion > WebGL1 | |
493 || m_extensionsUtil->supportsExtension("GL_EXT_texture_storage")) | |
494 && m_antiAliasingMode == ScreenSpaceAntialiasing; | |
495 m_sampleCount = std::min(4, maxSampleCount); | 489 m_sampleCount = std::min(4, maxSampleCount); |
496 | 490 |
497 m_gl->GenFramebuffers(1, &m_fbo); | 491 m_gl->GenFramebuffers(1, &m_fbo); |
498 m_gl->BindFramebuffer(GL_FRAMEBUFFER, m_fbo); | 492 m_gl->BindFramebuffer(GL_FRAMEBUFFER, m_fbo); |
499 if (wantExplicitResolve()) { | 493 if (wantExplicitResolve()) { |
500 m_gl->GenFramebuffers(1, &m_multisampleFBO); | 494 m_gl->GenFramebuffers(1, &m_multisampleFBO); |
501 m_gl->BindFramebuffer(GL_FRAMEBUFFER, m_multisampleFBO); | 495 m_gl->BindFramebuffer(GL_FRAMEBUFFER, m_multisampleFBO); |
502 m_gl->GenRenderbuffers(1, &m_multisampleRenderbuffer); | 496 m_gl->GenRenderbuffers(1, &m_multisampleRenderbuffer); |
503 } | 497 } |
504 if (!reset(size)) | 498 if (!reset(size)) |
(...skipping 617 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1122 | 1116 |
1123 void DrawingBuffer::restoreTextureBindings() | 1117 void DrawingBuffer::restoreTextureBindings() |
1124 { | 1118 { |
1125 // This class potentially modifies the bindings for GL_TEXTURE_2D and | 1119 // This class potentially modifies the bindings for GL_TEXTURE_2D and |
1126 // GL_TEXTURE_RECTANGLE. Only GL_TEXTURE_2D needs to be restored since | 1120 // GL_TEXTURE_RECTANGLE. Only GL_TEXTURE_2D needs to be restored since |
1127 // the public interface for WebGL does not support GL_TEXTURE_RECTANGLE. | 1121 // the public interface for WebGL does not support GL_TEXTURE_RECTANGLE. |
1128 m_gl->BindTexture(GL_TEXTURE_2D, m_texture2DBinding); | 1122 m_gl->BindTexture(GL_TEXTURE_2D, m_texture2DBinding); |
1129 } | 1123 } |
1130 | 1124 |
1131 } // namespace blink | 1125 } // namespace blink |
OLD | NEW |