[chromium] Avoid calling getUniformLocation??() in the compositor startup
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 4 Jul 2012 02:34:16 +0000 (02:34 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 4 Jul 2012 02:34:16 +0000 (02:34 +0000)
commit16fd8fd3a5e580db42fa15312b5a25fc340eb605
tree55249f65cff76cdac75cd46eb874d9191af51fef
parentd5a12ad480e5912b91423ad610f67c12c5ada168
[chromium] Avoid calling getUniformLocation??() in the compositor startup
https://bugs.webkit.org/show_bug.cgi?id=90217

Patch by Alex Sakhartchouk <alexst@chromium.org> on 2012-07-03
Reviewed by Adrienne Walker.

Source/Platform:

Adding an entry point for bindUniformLocationCHROMIUM.

* chromium/public/WebGraphicsContext3D.h:
(WebGraphicsContext3D):
(WebKit::WebGraphicsContext3D::bindUniformLocationCHROMIUM):

Source/WebCore:

This change allows chrome compositor to bind uniform locations instead of querying
them from the graphics context by using GL_CHROMIUM_bind_uniform_location.

The extention itself is tested in chromium and the change in webkit simply adds
plumbing to allow its usage. Existing pixel tests would be able to verify proper behaviour.

* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::LayerRendererChromium::LayerRendererChromium):
(WebCore::LayerRendererChromium::initialize):
(WebCore::LayerRendererChromium::initializeSharedObjects):
(WebCore::LayerRendererChromium::tileCheckerboardProgram):
(WebCore::LayerRendererChromium::solidColorProgram):
(WebCore::LayerRendererChromium::headsUpDisplayProgram):
(WebCore::LayerRendererChromium::renderPassProgram):
(WebCore::LayerRendererChromium::renderPassProgramAA):
(WebCore::LayerRendererChromium::renderPassMaskProgram):
(WebCore::LayerRendererChromium::renderPassMaskProgramAA):
(WebCore::LayerRendererChromium::tileProgram):
(WebCore::LayerRendererChromium::tileProgramOpaque):
(WebCore::LayerRendererChromium::tileProgramAA):
(WebCore::LayerRendererChromium::tileProgramSwizzle):
(WebCore::LayerRendererChromium::tileProgramSwizzleOpaque):
(WebCore::LayerRendererChromium::tileProgramSwizzleAA):
(WebCore::LayerRendererChromium::textureProgram):
(WebCore::LayerRendererChromium::textureProgramFlip):
(WebCore::LayerRendererChromium::textureIOSurfaceProgram):
(WebCore::LayerRendererChromium::videoYUVProgram):
(WebCore::LayerRendererChromium::videoStreamTextureProgram):
* platform/graphics/chromium/LayerRendererChromium.h:
(LayerRendererChromium):
* platform/graphics/chromium/ProgramBinding.cpp:
(WebCore::ProgramBindingBase::ProgramBindingBase):
(WebCore::ProgramBindingBase::~ProgramBindingBase):
(WebCore::ProgramBindingBase::init):
(WebCore::ProgramBindingBase::link):
(WebCore):
(WebCore::ProgramBindingBase::cleanup):
(WebCore::ProgramBindingBase::createShaderProgram):
(WebCore::ProgramBindingBase::cleanupShaders):
* platform/graphics/chromium/ProgramBinding.h:
(ProgramBindingBase):
(WebCore::ProgramBinding::initialize):
* platform/graphics/chromium/ShaderChromium.cpp:
(WebCore::VertexShaderPosTex::init):
(WebCore::VertexShaderPosTexYUVStretch::init):
(WebCore::VertexShaderPos::init):
(WebCore::VertexShaderPosTexTransform::init):
(WebCore::VertexShaderQuad::init):
(WebCore::VertexShaderTile::init):
(WebCore::VertexShaderVideoTransform::init):
(WebCore::FragmentTexAlphaBinding::init):
(WebCore::FragmentTexOpaqueBinding::init):
(WebCore::FragmentShaderOESImageExternal::init):
(WebCore::FragmentShaderRGBATexAlphaAA::init):
(WebCore::FragmentTexClampAlphaAABinding::init):
(WebCore::FragmentShaderRGBATexAlphaMask::init):
(WebCore::FragmentShaderRGBATexAlphaMaskAA::init):
(WebCore::FragmentShaderYUVVideo::init):
(WebCore::FragmentShaderColor::init):
(WebCore::FragmentShaderCheckerboard::init):
* platform/graphics/chromium/ShaderChromium.h:
(VertexShaderPosTex):
(VertexShaderPosTexYUVStretch):
(VertexShaderPos):
(WebCore::VertexShaderPosTexIdentity::init):
(VertexShaderPosTexTransform):
(VertexShaderQuad):
(VertexShaderTile):
(VertexShaderVideoTransform):
(FragmentTexAlphaBinding):
(FragmentTexOpaqueBinding):
(FragmentShaderOESImageExternal):
(FragmentShaderRGBATexAlphaAA):
(FragmentTexClampAlphaAABinding):
(FragmentShaderRGBATexAlphaMask):
(FragmentShaderRGBATexAlphaMaskAA):
(FragmentShaderYUVVideo):
(FragmentShaderColor):
(FragmentShaderCheckerboard):
* platform/graphics/chromium/TextureCopier.cpp:
(WebCore::AcceleratedTextureCopier::AcceleratedTextureCopier):
(WebCore::AcceleratedTextureCopier::copyTexture):
* platform/graphics/chromium/TextureCopier.h:
(WebCore::AcceleratedTextureCopier::create):
(AcceleratedTextureCopier):

Source/WebKit/chromium:

Fixing the build error.

* tests/TextureCopierTest.cpp:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121823 268f45cc-cd09-0410-ab3c-d52691b4dbfc
13 files changed:
Source/Platform/ChangeLog
Source/Platform/chromium/public/WebGraphicsContext3D.h
Source/WebCore/ChangeLog
Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp
Source/WebCore/platform/graphics/chromium/LayerRendererChromium.h
Source/WebCore/platform/graphics/chromium/ProgramBinding.cpp
Source/WebCore/platform/graphics/chromium/ProgramBinding.h
Source/WebCore/platform/graphics/chromium/ShaderChromium.cpp
Source/WebCore/platform/graphics/chromium/ShaderChromium.h
Source/WebCore/platform/graphics/chromium/TextureCopier.cpp
Source/WebCore/platform/graphics/chromium/TextureCopier.h
Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/tests/TextureCopierTest.cpp