Changeset 121823 in webkit
- Timestamp:
- Jul 3, 2012 7:34:16 PM (12 years ago)
- Location:
- trunk/Source
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/Platform/ChangeLog
r121801 r121823 1 2012-07-03 Alex Sakhartchouk <alexst@chromium.org> 2 3 [chromium] Avoid calling getUniformLocation??() in the compositor startup 4 https://bugs.webkit.org/show_bug.cgi?id=90217 5 6 Reviewed by Adrienne Walker. 7 8 Adding an entry point for bindUniformLocationCHROMIUM. 9 10 * chromium/public/WebGraphicsContext3D.h: 11 (WebGraphicsContext3D): 12 (WebKit::WebGraphicsContext3D::bindUniformLocationCHROMIUM): 13 1 14 2012-07-03 Tony Chang <tony@chromium.org> 2 15 -
trunk/Source/Platform/chromium/public/WebGraphicsContext3D.h
r121204 r121823 415 415 virtual void getQueryObjectuivEXT(WebGLId query, WGC3Denum pname, WGC3Duint* params) { } 416 416 417 // GL_CHROMIUM_bind_uniform_location 418 virtual void bindUniformLocationCHROMIUM(WebGLId program, WGC3Dint location, const WGC3Dchar* uniform) { } 419 417 420 // GL_CHROMIUM_copy_texture 418 421 virtual void copyTextureCHROMIUM(WGC3Denum target, WGC3Duint sourceId, -
trunk/Source/WebCore/ChangeLog
r121818 r121823 1 2012-07-03 Alex Sakhartchouk <alexst@chromium.org> 2 3 [chromium] Avoid calling getUniformLocation??() in the compositor startup 4 https://bugs.webkit.org/show_bug.cgi?id=90217 5 6 Reviewed by Adrienne Walker. 7 8 This change allows chrome compositor to bind uniform locations instead of querying 9 them from the graphics context by using GL_CHROMIUM_bind_uniform_location. 10 11 The extention itself is tested in chromium and the change in webkit simply adds 12 plumbing to allow its usage. Existing pixel tests would be able to verify proper behaviour. 13 14 * platform/graphics/chromium/LayerRendererChromium.cpp: 15 (WebCore::LayerRendererChromium::LayerRendererChromium): 16 (WebCore::LayerRendererChromium::initialize): 17 (WebCore::LayerRendererChromium::initializeSharedObjects): 18 (WebCore::LayerRendererChromium::tileCheckerboardProgram): 19 (WebCore::LayerRendererChromium::solidColorProgram): 20 (WebCore::LayerRendererChromium::headsUpDisplayProgram): 21 (WebCore::LayerRendererChromium::renderPassProgram): 22 (WebCore::LayerRendererChromium::renderPassProgramAA): 23 (WebCore::LayerRendererChromium::renderPassMaskProgram): 24 (WebCore::LayerRendererChromium::renderPassMaskProgramAA): 25 (WebCore::LayerRendererChromium::tileProgram): 26 (WebCore::LayerRendererChromium::tileProgramOpaque): 27 (WebCore::LayerRendererChromium::tileProgramAA): 28 (WebCore::LayerRendererChromium::tileProgramSwizzle): 29 (WebCore::LayerRendererChromium::tileProgramSwizzleOpaque): 30 (WebCore::LayerRendererChromium::tileProgramSwizzleAA): 31 (WebCore::LayerRendererChromium::textureProgram): 32 (WebCore::LayerRendererChromium::textureProgramFlip): 33 (WebCore::LayerRendererChromium::textureIOSurfaceProgram): 34 (WebCore::LayerRendererChromium::videoYUVProgram): 35 (WebCore::LayerRendererChromium::videoStreamTextureProgram): 36 * platform/graphics/chromium/LayerRendererChromium.h: 37 (LayerRendererChromium): 38 * platform/graphics/chromium/ProgramBinding.cpp: 39 (WebCore::ProgramBindingBase::ProgramBindingBase): 40 (WebCore::ProgramBindingBase::~ProgramBindingBase): 41 (WebCore::ProgramBindingBase::init): 42 (WebCore::ProgramBindingBase::link): 43 (WebCore): 44 (WebCore::ProgramBindingBase::cleanup): 45 (WebCore::ProgramBindingBase::createShaderProgram): 46 (WebCore::ProgramBindingBase::cleanupShaders): 47 * platform/graphics/chromium/ProgramBinding.h: 48 (ProgramBindingBase): 49 (WebCore::ProgramBinding::initialize): 50 * platform/graphics/chromium/ShaderChromium.cpp: 51 (WebCore::VertexShaderPosTex::init): 52 (WebCore::VertexShaderPosTexYUVStretch::init): 53 (WebCore::VertexShaderPos::init): 54 (WebCore::VertexShaderPosTexTransform::init): 55 (WebCore::VertexShaderQuad::init): 56 (WebCore::VertexShaderTile::init): 57 (WebCore::VertexShaderVideoTransform::init): 58 (WebCore::FragmentTexAlphaBinding::init): 59 (WebCore::FragmentTexOpaqueBinding::init): 60 (WebCore::FragmentShaderOESImageExternal::init): 61 (WebCore::FragmentShaderRGBATexAlphaAA::init): 62 (WebCore::FragmentTexClampAlphaAABinding::init): 63 (WebCore::FragmentShaderRGBATexAlphaMask::init): 64 (WebCore::FragmentShaderRGBATexAlphaMaskAA::init): 65 (WebCore::FragmentShaderYUVVideo::init): 66 (WebCore::FragmentShaderColor::init): 67 (WebCore::FragmentShaderCheckerboard::init): 68 * platform/graphics/chromium/ShaderChromium.h: 69 (VertexShaderPosTex): 70 (VertexShaderPosTexYUVStretch): 71 (VertexShaderPos): 72 (WebCore::VertexShaderPosTexIdentity::init): 73 (VertexShaderPosTexTransform): 74 (VertexShaderQuad): 75 (VertexShaderTile): 76 (VertexShaderVideoTransform): 77 (FragmentTexAlphaBinding): 78 (FragmentTexOpaqueBinding): 79 (FragmentShaderOESImageExternal): 80 (FragmentShaderRGBATexAlphaAA): 81 (FragmentTexClampAlphaAABinding): 82 (FragmentShaderRGBATexAlphaMask): 83 (FragmentShaderRGBATexAlphaMaskAA): 84 (FragmentShaderYUVVideo): 85 (FragmentShaderColor): 86 (FragmentShaderCheckerboard): 87 * platform/graphics/chromium/TextureCopier.cpp: 88 (WebCore::AcceleratedTextureCopier::AcceleratedTextureCopier): 89 (WebCore::AcceleratedTextureCopier::copyTexture): 90 * platform/graphics/chromium/TextureCopier.h: 91 (WebCore::AcceleratedTextureCopier::create): 92 (AcceleratedTextureCopier): 93 1 94 2012-07-03 Erik Arvidsson <arv@chromium.org> 2 95 -
trunk/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp
r121583 r121823 165 165 , m_isViewportChanged(false) 166 166 , m_isFramebufferDiscarded(false) 167 , m_isUsingBindUniform(false) 167 168 , m_visible(true) 168 169 , m_textureUploaderSetting(textureUploaderSetting) … … 227 228 GLC(m_context, m_context->getIntegerv(GraphicsContext3D::MAX_TEXTURE_SIZE, &m_capabilities.maxTextureSize)); 228 229 m_capabilities.bestTextureFormat = PlatformColor::bestTextureFormat(m_context, extensions.contains("GL_EXT_texture_format_BGRA8888")); 230 231 m_isUsingBindUniform = extensions.contains("GL_CHROMIUM_bind_uniform_location"); 229 232 230 233 if (!initializeSharedObjects()) … … 1430 1433 TextureManager::reclaimLimitBytes(viewportSize()), 1431 1434 m_capabilities.maxTextureSize); 1432 m_textureCopier = AcceleratedTextureCopier::create(m_context );1435 m_textureCopier = AcceleratedTextureCopier::create(m_context, m_isUsingBindUniform); 1433 1436 if (m_textureUploaderSetting == ThrottledUploader) 1434 1437 m_textureUploader = ThrottledTextureUploader::create(m_context); … … 1453 1456 if (!m_tileCheckerboardProgram->initialized()) { 1454 1457 TRACE_EVENT0("cc", "LayerRendererChromium::checkerboardProgram::initalize"); 1455 m_tileCheckerboardProgram->initialize(m_context );1458 m_tileCheckerboardProgram->initialize(m_context, m_isUsingBindUniform); 1456 1459 } 1457 1460 return m_tileCheckerboardProgram.get(); … … 1464 1467 if (!m_solidColorProgram->initialized()) { 1465 1468 TRACE_EVENT0("cc", "LayerRendererChromium::solidColorProgram::initialize"); 1466 m_solidColorProgram->initialize(m_context );1469 m_solidColorProgram->initialize(m_context, m_isUsingBindUniform); 1467 1470 } 1468 1471 return m_solidColorProgram.get(); … … 1475 1478 if (!m_headsUpDisplayProgram->initialized()) { 1476 1479 TRACE_EVENT0("cc", "LayerRendererChromium::headsUpDisplayProgram::initialize"); 1477 m_headsUpDisplayProgram->initialize(m_context );1480 m_headsUpDisplayProgram->initialize(m_context, m_isUsingBindUniform); 1478 1481 } 1479 1482 return m_headsUpDisplayProgram.get(); … … 1485 1488 if (!m_renderPassProgram->initialized()) { 1486 1489 TRACE_EVENT0("cc", "LayerRendererChromium::renderPassProgram::initialize"); 1487 m_renderPassProgram->initialize(m_context );1490 m_renderPassProgram->initialize(m_context, m_isUsingBindUniform); 1488 1491 } 1489 1492 return m_renderPassProgram.get(); … … 1496 1499 if (!m_renderPassProgramAA->initialized()) { 1497 1500 TRACE_EVENT0("cc", "LayerRendererChromium::renderPassProgramAA::initialize"); 1498 m_renderPassProgramAA->initialize(m_context );1501 m_renderPassProgramAA->initialize(m_context, m_isUsingBindUniform); 1499 1502 } 1500 1503 return m_renderPassProgramAA.get(); … … 1507 1510 if (!m_renderPassMaskProgram->initialized()) { 1508 1511 TRACE_EVENT0("cc", "LayerRendererChromium::renderPassMaskProgram::initialize"); 1509 m_renderPassMaskProgram->initialize(m_context );1512 m_renderPassMaskProgram->initialize(m_context, m_isUsingBindUniform); 1510 1513 } 1511 1514 return m_renderPassMaskProgram.get(); … … 1518 1521 if (!m_renderPassMaskProgramAA->initialized()) { 1519 1522 TRACE_EVENT0("cc", "LayerRendererChromium::renderPassMaskProgramAA::initialize"); 1520 m_renderPassMaskProgramAA->initialize(m_context );1523 m_renderPassMaskProgramAA->initialize(m_context, m_isUsingBindUniform); 1521 1524 } 1522 1525 return m_renderPassMaskProgramAA.get(); … … 1528 1531 if (!m_tileProgram->initialized()) { 1529 1532 TRACE_EVENT0("cc", "LayerRendererChromium::tileProgram::initialize"); 1530 m_tileProgram->initialize(m_context );1533 m_tileProgram->initialize(m_context, m_isUsingBindUniform); 1531 1534 } 1532 1535 return m_tileProgram.get(); … … 1538 1541 if (!m_tileProgramOpaque->initialized()) { 1539 1542 TRACE_EVENT0("cc", "LayerRendererChromium::tileProgramOpaque::initialize"); 1540 m_tileProgramOpaque->initialize(m_context );1543 m_tileProgramOpaque->initialize(m_context, m_isUsingBindUniform); 1541 1544 } 1542 1545 return m_tileProgramOpaque.get(); … … 1549 1552 if (!m_tileProgramAA->initialized()) { 1550 1553 TRACE_EVENT0("cc", "LayerRendererChromium::tileProgramAA::initialize"); 1551 m_tileProgramAA->initialize(m_context );1554 m_tileProgramAA->initialize(m_context, m_isUsingBindUniform); 1552 1555 } 1553 1556 return m_tileProgramAA.get(); … … 1560 1563 if (!m_tileProgramSwizzle->initialized()) { 1561 1564 TRACE_EVENT0("cc", "LayerRendererChromium::tileProgramSwizzle::initialize"); 1562 m_tileProgramSwizzle->initialize(m_context );1565 m_tileProgramSwizzle->initialize(m_context, m_isUsingBindUniform); 1563 1566 } 1564 1567 return m_tileProgramSwizzle.get(); … … 1571 1574 if (!m_tileProgramSwizzleOpaque->initialized()) { 1572 1575 TRACE_EVENT0("cc", "LayerRendererChromium::tileProgramSwizzleOpaque::initialize"); 1573 m_tileProgramSwizzleOpaque->initialize(m_context );1576 m_tileProgramSwizzleOpaque->initialize(m_context, m_isUsingBindUniform); 1574 1577 } 1575 1578 return m_tileProgramSwizzleOpaque.get(); … … 1582 1585 if (!m_tileProgramSwizzleAA->initialized()) { 1583 1586 TRACE_EVENT0("cc", "LayerRendererChromium::tileProgramSwizzleAA::initialize"); 1584 m_tileProgramSwizzleAA->initialize(m_context );1587 m_tileProgramSwizzleAA->initialize(m_context, m_isUsingBindUniform); 1585 1588 } 1586 1589 return m_tileProgramSwizzleAA.get(); … … 1593 1596 if (!m_textureProgram->initialized()) { 1594 1597 TRACE_EVENT0("cc", "LayerRendererChromium::textureProgram::initialize"); 1595 m_textureProgram->initialize(m_context );1598 m_textureProgram->initialize(m_context, m_isUsingBindUniform); 1596 1599 } 1597 1600 return m_textureProgram.get(); … … 1604 1607 if (!m_textureProgramFlip->initialized()) { 1605 1608 TRACE_EVENT0("cc", "LayerRendererChromium::textureProgramFlip::initialize"); 1606 m_textureProgramFlip->initialize(m_context );1609 m_textureProgramFlip->initialize(m_context, m_isUsingBindUniform); 1607 1610 } 1608 1611 return m_textureProgramFlip.get(); … … 1615 1618 if (!m_textureIOSurfaceProgram->initialized()) { 1616 1619 TRACE_EVENT0("cc", "LayerRendererChromium::textureIOSurfaceProgram::initialize"); 1617 m_textureIOSurfaceProgram->initialize(m_context );1620 m_textureIOSurfaceProgram->initialize(m_context, m_isUsingBindUniform); 1618 1621 } 1619 1622 return m_textureIOSurfaceProgram.get(); … … 1626 1629 if (!m_videoYUVProgram->initialized()) { 1627 1630 TRACE_EVENT0("cc", "LayerRendererChromium::videoYUVProgram::initialize"); 1628 m_videoYUVProgram->initialize(m_context );1631 m_videoYUVProgram->initialize(m_context, m_isUsingBindUniform); 1629 1632 } 1630 1633 return m_videoYUVProgram.get(); … … 1637 1640 if (!m_videoStreamTextureProgram->initialized()) { 1638 1641 TRACE_EVENT0("cc", "LayerRendererChromium::streamTextureProgram::initialize"); 1639 m_videoStreamTextureProgram->initialize(m_context );1642 m_videoStreamTextureProgram->initialize(m_context, m_isUsingBindUniform); 1640 1643 } 1641 1644 return m_videoStreamTextureProgram.get(); -
trunk/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.h
r121204 r121823 270 270 bool m_isViewportChanged; 271 271 bool m_isFramebufferDiscarded; 272 bool m_isUsingBindUniform; 272 273 bool m_visible; 273 274 TextureUploaderOption m_textureUploaderSetting; -
trunk/Source/WebCore/platform/graphics/chromium/ProgramBinding.cpp
r121458 r121823 43 43 ProgramBindingBase::ProgramBindingBase() 44 44 : m_program(0) 45 , m_vertexShaderId(0) 46 , m_fragmentShaderId(0) 45 47 , m_initialized(false) 46 48 { … … 51 53 // If you hit these asserts, you initialized but forgot to call cleanup(). 52 54 ASSERT(!m_program); 55 ASSERT(!m_vertexShaderId); 56 ASSERT(!m_fragmentShaderId); 53 57 ASSERT(!m_initialized); 54 58 } … … 62 66 void ProgramBindingBase::init(WebGraphicsContext3D* context, const String& vertexShader, const String& fragmentShader) 63 67 { 64 m_program = createShaderProgram(context, vertexShader, fragmentShader); 68 TRACE_EVENT("ProgramBindingBase::init", this, 0); 69 m_vertexShaderId = loadShader(context, GraphicsContext3D::VERTEX_SHADER, vertexShader); 70 if (!m_vertexShaderId) { 71 if (!contextLost(context)) 72 LOG_ERROR("Failed to create vertex shader"); 73 return; 74 } 75 76 m_fragmentShaderId = loadShader(context, GraphicsContext3D::FRAGMENT_SHADER, fragmentShader); 77 if (!m_fragmentShaderId) { 78 GLC(context, context->deleteShader(m_vertexShaderId)); 79 m_vertexShaderId = 0; 80 if (!contextLost(context)) 81 LOG_ERROR("Failed to create fragment shader"); 82 return; 83 } 84 85 m_program = createShaderProgram(context, m_vertexShaderId, m_fragmentShaderId); 65 86 ASSERT(m_program || contextLost(context)); 87 } 88 89 void ProgramBindingBase::link(WebGraphicsContext3D* context) 90 { 91 GLC(context, context->linkProgram(m_program)); 92 cleanupShaders(context); 93 #ifndef NDEBUG 94 int linked = 0; 95 GLC(context, context->getProgramiv(m_program, GraphicsContext3D::LINK_STATUS, &linked)); 96 if (!linked) { 97 if (!contextLost(context)) 98 LOG_ERROR("Failed to link shader program"); 99 GLC(context, context->deleteProgram(m_program)); 100 return; 101 } 102 #endif 66 103 } 67 104 … … 75 112 GLC(context, context->deleteProgram(m_program)); 76 113 m_program = 0; 114 115 cleanupShaders(context); 77 116 } 78 117 … … 96 135 } 97 136 98 unsigned ProgramBindingBase::createShaderProgram(WebGraphicsContext3D* context, const String& vertexShaderSource, const String& fragmentShaderSource)137 unsigned ProgramBindingBase::createShaderProgram(WebGraphicsContext3D* context, unsigned vertexShader, unsigned fragmentShader) 99 138 { 100 TRACE_EVENT0("cc", "ProgramBindingBase::createShaderProgram");101 unsigned vertexShader = loadShader(context, GraphicsContext3D::VERTEX_SHADER, vertexShaderSource);102 if (!vertexShader) {103 if (!contextLost(context))104 LOG_ERROR("Failed to create vertex shader");105 return 0;106 }107 108 unsigned fragmentShader = loadShader(context, GraphicsContext3D::FRAGMENT_SHADER, fragmentShaderSource);109 if (!fragmentShader) {110 GLC(context, context->deleteShader(vertexShader));111 if (!contextLost(context))112 LOG_ERROR("Failed to create fragment shader");113 return 0;114 }115 116 139 unsigned programObject = context->createProgram(); 117 140 if (!programObject) { … … 128 151 GLC(context, context->bindAttribLocation(programObject, GeometryBinding::texCoordAttribLocation(), "a_texCoord")); 129 152 130 GLC(context, context->linkProgram(programObject)); 131 #ifndef NDEBUG 132 int linked = 0; 133 GLC(context, context->getProgramiv(programObject, GraphicsContext3D::LINK_STATUS, &linked)); 134 if (!linked) { 135 if (!contextLost(context)) 136 LOG_ERROR("Failed to link shader program"); 137 GLC(context, context->deleteProgram(programObject)); 138 return 0; 153 return programObject; 154 } 155 156 void ProgramBindingBase::cleanupShaders(WebGraphicsContext3D* context) 157 { 158 if (m_vertexShaderId) { 159 GLC(context, context->deleteShader(m_vertexShaderId)); 160 m_vertexShaderId = 0; 139 161 } 140 #endif 141 142 GLC(context, context->deleteShader(vertexShader)); 143 GLC(context, context->deleteShader(fragmentShader)); 144 return programObject; 162 if (m_fragmentShaderId) { 163 GLC(context, context->deleteShader(m_fragmentShaderId)); 164 m_fragmentShaderId = 0; 165 } 145 166 } 146 167 -
trunk/Source/WebCore/platform/graphics/chromium/ProgramBinding.h
r121204 r121823 43 43 44 44 void init(WebKit::WebGraphicsContext3D*, const String& vertexShader, const String& fragmentShader); 45 void link(WebKit::WebGraphicsContext3D*); 45 46 void cleanup(WebKit::WebGraphicsContext3D*); 46 47 … … 51 52 52 53 unsigned loadShader(WebKit::WebGraphicsContext3D*, unsigned type, const String& shaderSource); 53 unsigned createShaderProgram(WebKit::WebGraphicsContext3D*, const String& vertexShaderSource, const String& fragmentShaderSource); 54 unsigned createShaderProgram(WebKit::WebGraphicsContext3D*, unsigned vertexShader, unsigned fragmentShader); 55 void cleanupShaders(WebKit::WebGraphicsContext3D*); 54 56 55 57 unsigned m_program; 58 unsigned m_vertexShaderId; 59 unsigned m_fragmentShaderId; 56 60 bool m_initialized; 57 61 }; … … 65 69 } 66 70 67 void initialize(WebKit::WebGraphicsContext3D* context )71 void initialize(WebKit::WebGraphicsContext3D* context, bool usingBindUniform) 68 72 { 69 73 ASSERT(context); … … 71 75 ASSERT(!m_initialized); 72 76 73 m_vertexShader.init(context, m_program); 74 m_fragmentShader.init(context, m_program); 77 // Need to bind uniforms before linking 78 if (!usingBindUniform) 79 link(context); 80 81 int baseUniformIndex = 0; 82 m_vertexShader.init(context, m_program, usingBindUniform, &baseUniformIndex); 83 m_fragmentShader.init(context, m_program, usingBindUniform, &baseUniformIndex); 84 85 // Link after binding uniforms 86 if (usingBindUniform) 87 link(context); 88 75 89 m_initialized = true; 76 90 } -
trunk/Source/WebCore/platform/graphics/chromium/ShaderChromium.cpp
r121204 r121823 39 39 namespace WebCore { 40 40 41 namespace { 42 43 static void getProgramUniformLocations(WebGraphicsContext3D* context, unsigned program, const char** shaderUniforms, size_t count, size_t maxLocations, int* locations, bool usingBindUniform, int* baseUniformIndex) 44 { 45 for (size_t uniformIndex = 0; uniformIndex < count; uniformIndex ++) { 46 ASSERT(uniformIndex < maxLocations); 47 48 if (usingBindUniform) { 49 locations[uniformIndex] = (*baseUniformIndex)++; 50 context->bindUniformLocationCHROMIUM(program, locations[uniformIndex], shaderUniforms[uniformIndex]); 51 } else 52 locations[uniformIndex] = context->getUniformLocation(program, shaderUniforms[uniformIndex]); 53 } 54 } 55 56 } 57 41 58 VertexShaderPosTex::VertexShaderPosTex() 42 59 : m_matrixLocation(-1) … … 44 61 } 45 62 46 void VertexShaderPosTex::init(WebGraphicsContext3D* context, unsigned program) 47 { 48 m_matrixLocation = context->getUniformLocation(program, "matrix"); 63 void VertexShaderPosTex::init(WebGraphicsContext3D* context, unsigned program, bool usingBindUniform, int* baseUniformIndex) 64 { 65 static const char* shaderUniforms[] = { 66 "matrix", 67 }; 68 int locations[1]; 69 70 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGTH(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, baseUniformIndex); 71 72 m_matrixLocation = locations[0]; 49 73 ASSERT(m_matrixLocation != -1); 50 74 } … … 72 96 } 73 97 74 void VertexShaderPosTexYUVStretch::init(WebGraphicsContext3D* context, unsigned program) 75 { 76 m_matrixLocation = context->getUniformLocation(program, "matrix"); 77 m_yWidthScaleFactorLocation = context->getUniformLocation(program, "y_widthScaleFactor"); 78 m_uvWidthScaleFactorLocation = context->getUniformLocation(program, "uv_widthScaleFactor"); 98 void VertexShaderPosTexYUVStretch::init(WebGraphicsContext3D* context, unsigned program, bool usingBindUniform, int* baseUniformIndex) 99 { 100 static const char* shaderUniforms[] = { 101 "matrix", 102 "y_widthScaleFactor", 103 "uv_widthScaleFactor", 104 }; 105 int locations[3]; 106 107 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGTH(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, baseUniformIndex); 108 109 m_matrixLocation = locations[0]; 110 m_yWidthScaleFactorLocation = locations[1]; 111 m_uvWidthScaleFactorLocation = locations[2]; 79 112 ASSERT(m_matrixLocation != -1 && m_yWidthScaleFactorLocation != -1 && m_uvWidthScaleFactorLocation != -1); 80 113 } … … 105 138 } 106 139 107 void VertexShaderPos::init(WebGraphicsContext3D* context, unsigned program) 108 { 109 m_matrixLocation = context->getUniformLocation(program, "matrix"); 140 void VertexShaderPos::init(WebGraphicsContext3D* context, unsigned program, bool usingBindUniform, int* baseUniformIndex) 141 { 142 static const char* shaderUniforms[] = { 143 "matrix", 144 }; 145 int locations[1]; 146 147 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGTH(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, baseUniformIndex); 148 149 m_matrixLocation = locations[0]; 110 150 ASSERT(m_matrixLocation != -1); 111 151 } … … 129 169 } 130 170 131 void VertexShaderPosTexTransform::init(WebGraphicsContext3D* context, unsigned program) 132 { 133 m_matrixLocation = context->getUniformLocation(program, "matrix"); 134 m_texTransformLocation = context->getUniformLocation(program, "texTransform"); 171 void VertexShaderPosTexTransform::init(WebGraphicsContext3D* context, unsigned program, bool usingBindUniform, int* baseUniformIndex) 172 { 173 static const char* shaderUniforms[] = { 174 "matrix", 175 "texTransform", 176 }; 177 int locations[2]; 178 179 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGTH(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, baseUniformIndex); 180 181 m_matrixLocation = locations[0]; 182 m_texTransformLocation = locations[1]; 135 183 ASSERT(m_matrixLocation != -1 && m_texTransformLocation != -1); 136 184 } … … 171 219 } 172 220 173 void VertexShaderQuad::init(WebGraphicsContext3D* context, unsigned program) 174 { 175 m_matrixLocation = context->getUniformLocation(program, "matrix"); 176 m_pointLocation = context->getUniformLocation(program, "point"); 221 void VertexShaderQuad::init(WebGraphicsContext3D* context, unsigned program, bool usingBindUniform, int* baseUniformIndex) 222 { 223 static const char* shaderUniforms[] = { 224 "matrix", 225 "point", 226 }; 227 int locations[2]; 228 229 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGTH(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, baseUniformIndex); 230 231 m_matrixLocation = locations[0]; 232 m_pointLocation = locations[1]; 177 233 ASSERT(m_matrixLocation != -1 && m_pointLocation != -1); 178 234 } … … 207 263 } 208 264 209 void VertexShaderTile::init(WebGraphicsContext3D* context, unsigned program) 210 { 211 m_matrixLocation = context->getUniformLocation(program, "matrix"); 212 m_pointLocation = context->getUniformLocation(program, "point"); 213 m_vertexTexTransformLocation = context->getUniformLocation(program, "vertexTexTransform"); 265 void VertexShaderTile::init(WebGraphicsContext3D* context, unsigned program, bool usingBindUniform, int* baseUniformIndex) 266 { 267 static const char* shaderUniforms[] = { 268 "matrix", 269 "point", 270 "vertexTexTransform", 271 }; 272 int locations[3]; 273 274 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGTH(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, baseUniformIndex); 275 276 m_matrixLocation = locations[0]; 277 m_pointLocation = locations[1]; 278 m_vertexTexTransformLocation = locations[2]; 214 279 ASSERT(m_matrixLocation != -1 && m_pointLocation != -1 && m_vertexTexTransformLocation != -1); 215 280 } … … 244 309 } 245 310 246 bool VertexShaderVideoTransform::init(WebGraphicsContext3D* context, unsigned program) 247 { 248 m_matrixLocation = context->getUniformLocation(program, "matrix"); 249 m_texMatrixLocation = context->getUniformLocation(program, "texMatrix"); 311 bool VertexShaderVideoTransform::init(WebGraphicsContext3D* context, unsigned program, bool usingBindUniform, int* baseUniformIndex) 312 { 313 static const char* shaderUniforms[] = { 314 "matrix", 315 "texMatrix", 316 }; 317 int locations[2]; 318 319 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGTH(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, baseUniformIndex); 320 321 m_matrixLocation = locations[0]; 322 m_texMatrixLocation = locations[1]; 250 323 return m_matrixLocation != -1 && m_texMatrixLocation != -1; 251 324 } … … 273 346 } 274 347 275 void FragmentTexAlphaBinding::init(WebGraphicsContext3D* context, unsigned program) 276 { 277 m_samplerLocation = context->getUniformLocation(program, "s_texture"); 278 m_alphaLocation = context->getUniformLocation(program, "alpha"); 279 348 void FragmentTexAlphaBinding::init(WebGraphicsContext3D* context, unsigned program, bool usingBindUniform, int* baseUniformIndex) 349 { 350 static const char* shaderUniforms[] = { 351 "s_texture", 352 "alpha", 353 }; 354 int locations[2]; 355 356 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGTH(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, baseUniformIndex); 357 358 m_samplerLocation = locations[0]; 359 m_alphaLocation = locations[1]; 280 360 ASSERT(m_samplerLocation != -1 && m_alphaLocation != -1); 281 361 } … … 286 366 } 287 367 288 void FragmentTexOpaqueBinding::init(WebGraphicsContext3D* context, unsigned program) 289 { 290 m_samplerLocation = context->getUniformLocation(program, "s_texture"); 291 368 void FragmentTexOpaqueBinding::init(WebGraphicsContext3D* context, unsigned program, bool usingBindUniform, int* baseUniformIndex) 369 { 370 static const char* shaderUniforms[] = { 371 "s_texture", 372 }; 373 int locations[1]; 374 375 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGTH(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, baseUniformIndex); 376 377 m_samplerLocation = locations[0]; 292 378 ASSERT(m_samplerLocation != -1); 293 379 } … … 308 394 } 309 395 310 bool FragmentShaderOESImageExternal::init(WebGraphicsContext3D* context, unsigned program) 311 { 312 m_samplerLocation = context->getUniformLocation(program, "s_texture"); 313 396 bool FragmentShaderOESImageExternal::init(WebGraphicsContext3D* context, unsigned program, bool usingBindUniform, int* baseUniformIndex) 397 { 398 static const char* shaderUniforms[] = { 399 "s_texture", 400 }; 401 int locations[1]; 402 403 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGTH(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, baseUniformIndex); 404 405 m_samplerLocation = locations[0]; 314 406 return m_samplerLocation != -1; 315 407 } … … 438 530 } 439 531 440 void FragmentShaderRGBATexAlphaAA::init(WebGraphicsContext3D* context, unsigned program) 441 { 442 m_samplerLocation = context->getUniformLocation(program, "s_texture"); 443 m_alphaLocation = context->getUniformLocation(program, "alpha"); 444 m_edgeLocation = context->getUniformLocation(program, "edge"); 445 532 void FragmentShaderRGBATexAlphaAA::init(WebGraphicsContext3D* context, unsigned program, bool usingBindUniform, int* baseUniformIndex) 533 { 534 static const char* shaderUniforms[] = { 535 "s_texture", 536 "alpha", 537 "edge", 538 }; 539 int locations[3]; 540 541 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGTH(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, baseUniformIndex); 542 543 m_samplerLocation = locations[0]; 544 m_alphaLocation = locations[1]; 545 m_edgeLocation = locations[2]; 446 546 ASSERT(m_samplerLocation != -1 && m_alphaLocation != -1 && m_edgeLocation != -1); 447 547 } … … 480 580 } 481 581 482 void FragmentTexClampAlphaAABinding::init(WebGraphicsContext3D* context, unsigned program) 483 { 484 m_samplerLocation = context->getUniformLocation(program, "s_texture"); 485 m_alphaLocation = context->getUniformLocation(program, "alpha"); 486 m_fragmentTexTransformLocation = context->getUniformLocation(program, "fragmentTexTransform"); 487 m_edgeLocation = context->getUniformLocation(program, "edge"); 488 582 void FragmentTexClampAlphaAABinding::init(WebGraphicsContext3D* context, unsigned program, bool usingBindUniform, int* baseUniformIndex) 583 { 584 static const char* shaderUniforms[] = { 585 "s_texture", 586 "alpha", 587 "fragmentTexTransform", 588 "edge", 589 }; 590 int locations[4]; 591 592 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGTH(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, baseUniformIndex); 593 594 m_samplerLocation = locations[0]; 595 m_alphaLocation = locations[1]; 596 m_fragmentTexTransformLocation = locations[2]; 597 m_edgeLocation = locations[3]; 489 598 ASSERT(m_samplerLocation != -1 && m_alphaLocation != -1 && m_fragmentTexTransformLocation != -1 && m_edgeLocation != -1); 490 599 } … … 551 660 } 552 661 553 void FragmentShaderRGBATexAlphaMask::init(WebGraphicsContext3D* context, unsigned program) 554 { 555 m_samplerLocation = context->getUniformLocation(program, "s_texture"); 556 m_maskSamplerLocation = context->getUniformLocation(program, "s_mask"); 557 m_alphaLocation = context->getUniformLocation(program, "alpha"); 662 void FragmentShaderRGBATexAlphaMask::init(WebGraphicsContext3D* context, unsigned program, bool usingBindUniform, int* baseUniformIndex) 663 { 664 static const char* shaderUniforms[] = { 665 "s_texture", 666 "s_mask", 667 "alpha", 668 }; 669 int locations[3]; 670 671 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGTH(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, baseUniformIndex); 672 673 m_samplerLocation = locations[0]; 674 m_maskSamplerLocation = locations[1]; 675 m_alphaLocation = locations[2]; 558 676 ASSERT(m_samplerLocation != -1 && m_maskSamplerLocation != -1 && m_alphaLocation != -1); 559 677 } … … 584 702 } 585 703 586 void FragmentShaderRGBATexAlphaMaskAA::init(WebGraphicsContext3D* context, unsigned program) 587 { 588 m_samplerLocation = context->getUniformLocation(program, "s_texture"); 589 m_maskSamplerLocation = context->getUniformLocation(program, "s_mask"); 590 m_alphaLocation = context->getUniformLocation(program, "alpha"); 591 m_edgeLocation = context->getUniformLocation(program, "edge"); 704 void FragmentShaderRGBATexAlphaMaskAA::init(WebGraphicsContext3D* context, unsigned program, bool usingBindUniform, int* baseUniformIndex) 705 { 706 static const char* shaderUniforms[] = { 707 "s_texture", 708 "s_mask", 709 "alpha", 710 "edge", 711 }; 712 int locations[4]; 713 714 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGTH(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, baseUniformIndex); 715 716 m_samplerLocation = locations[0]; 717 m_maskSamplerLocation = locations[1]; 718 m_alphaLocation = locations[2]; 719 m_edgeLocation = locations[3]; 592 720 ASSERT(m_samplerLocation != -1 && m_maskSamplerLocation != -1 && m_alphaLocation != -1 && m_edgeLocation != -1); 593 721 } … … 630 758 } 631 759 632 void FragmentShaderYUVVideo::init(WebGraphicsContext3D* context, unsigned program) 633 { 634 m_yTextureLocation = context->getUniformLocation(program, "y_texture"); 635 m_uTextureLocation = context->getUniformLocation(program, "u_texture"); 636 m_vTextureLocation = context->getUniformLocation(program, "v_texture"); 637 m_alphaLocation = context->getUniformLocation(program, "alpha"); 638 m_ccMatrixLocation = context->getUniformLocation(program, "cc_matrix"); 639 m_yuvAdjLocation = context->getUniformLocation(program, "yuv_adj"); 760 void FragmentShaderYUVVideo::init(WebGraphicsContext3D* context, unsigned program, bool usingBindUniform, int* baseUniformIndex) 761 { 762 static const char* shaderUniforms[] = { 763 "y_texture", 764 "u_texture", 765 "v_texture", 766 "alpha", 767 "cc_matrix", 768 "yuv_adj", 769 }; 770 int locations[6]; 771 772 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGTH(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, baseUniformIndex); 773 774 m_yTextureLocation = locations[0]; 775 m_uTextureLocation = locations[1]; 776 m_vTextureLocation = locations[2]; 777 m_alphaLocation = locations[3]; 778 m_ccMatrixLocation = locations[4]; 779 m_yuvAdjLocation = locations[5]; 640 780 641 781 ASSERT(m_yTextureLocation != -1 && m_uTextureLocation != -1 && m_vTextureLocation != -1 … … 673 813 } 674 814 675 void FragmentShaderColor::init(WebGraphicsContext3D* context, unsigned program) 676 { 677 m_colorLocation = context->getUniformLocation(program, "color"); 815 void FragmentShaderColor::init(WebGraphicsContext3D* context, unsigned program, bool usingBindUniform, int* baseUniformIndex) 816 { 817 static const char* shaderUniforms[] = { 818 "color", 819 }; 820 int locations[1]; 821 822 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGTH(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, baseUniformIndex); 823 824 m_colorLocation = locations[0]; 678 825 ASSERT(m_colorLocation != -1); 679 826 } … … 698 845 } 699 846 700 void FragmentShaderCheckerboard::init(WebGraphicsContext3D* context, unsigned program) 701 { 702 m_alphaLocation = context->getUniformLocation(program, "alpha"); 703 m_texTransformLocation = context->getUniformLocation(program, "texTransform"); 704 m_frequencyLocation = context->getUniformLocation(program, "frequency"); 847 void FragmentShaderCheckerboard::init(WebGraphicsContext3D* context, unsigned program, bool usingBindUniform, int* baseUniformIndex) 848 { 849 static const char* shaderUniforms[] = { 850 "alpha", 851 "texTransform", 852 "frequency", 853 }; 854 int locations[3]; 855 856 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGTH(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, baseUniformIndex); 857 858 m_alphaLocation = locations[0]; 859 m_texTransformLocation = locations[1]; 860 m_frequencyLocation = locations[2]; 705 861 ASSERT(m_alphaLocation != -1 && m_texTransformLocation != -1 && m_frequencyLocation != -1); 706 862 } -
trunk/Source/WebCore/platform/graphics/chromium/ShaderChromium.h
r121378 r121823 42 42 VertexShaderPosTex(); 43 43 44 void init(WebKit::WebGraphicsContext3D*, unsigned program );44 void init(WebKit::WebGraphicsContext3D*, unsigned program, bool usingBindUniform, int* baseUniformIndex); 45 45 String getShaderString() const; 46 46 … … 55 55 VertexShaderPosTexYUVStretch(); 56 56 57 void init(WebKit::WebGraphicsContext3D*, unsigned program );57 void init(WebKit::WebGraphicsContext3D*, unsigned program, bool usingBindUniform, int* baseUniformIndex); 58 58 String getShaderString() const; 59 59 … … 72 72 VertexShaderPos(); 73 73 74 void init(WebKit::WebGraphicsContext3D*, unsigned program );74 void init(WebKit::WebGraphicsContext3D*, unsigned program, bool usingBindUniform, int* baseUniformIndex); 75 75 String getShaderString() const; 76 76 … … 83 83 class VertexShaderPosTexIdentity { 84 84 public: 85 void init(WebKit::WebGraphicsContext3D*, unsigned program ) { }85 void init(WebKit::WebGraphicsContext3D*, unsigned program, bool usingBindUniform, int* baseUniformIndex) { } 86 86 String getShaderString() const; 87 87 }; … … 91 91 VertexShaderPosTexTransform(); 92 92 93 void init(WebKit::WebGraphicsContext3D*, unsigned program );93 void init(WebKit::WebGraphicsContext3D*, unsigned program, bool usingBindUniform, int* baseUniformIndex); 94 94 String getShaderString() const; 95 95 … … 106 106 VertexShaderQuad(); 107 107 108 void init(WebKit::WebGraphicsContext3D*, unsigned program );108 void init(WebKit::WebGraphicsContext3D*, unsigned program, bool usingBindUniform, int* baseUniformIndex); 109 109 String getShaderString() const; 110 110 … … 121 121 VertexShaderTile(); 122 122 123 void init(WebKit::WebGraphicsContext3D*, unsigned program );123 void init(WebKit::WebGraphicsContext3D*, unsigned program, bool usingBindUniform, int* baseUniformIndex); 124 124 String getShaderString() const; 125 125 … … 138 138 VertexShaderVideoTransform(); 139 139 140 bool init(WebKit::WebGraphicsContext3D*, unsigned program );140 bool init(WebKit::WebGraphicsContext3D*, unsigned program, bool usingBindUniform, int* baseUniformIndex); 141 141 String getShaderString() const; 142 142 … … 153 153 FragmentTexAlphaBinding(); 154 154 155 void init(WebKit::WebGraphicsContext3D*, unsigned program );155 void init(WebKit::WebGraphicsContext3D*, unsigned program, bool usingBindUniform, int* baseUniformIndex); 156 156 int alphaLocation() const { return m_alphaLocation; } 157 157 int edgeLocation() const { return -1; } … … 168 168 FragmentTexOpaqueBinding(); 169 169 170 void init(WebKit::WebGraphicsContext3D*, unsigned program );170 void init(WebKit::WebGraphicsContext3D*, unsigned program, bool usingBindUniform, int* baseUniformIndex); 171 171 int alphaLocation() const { return -1; } 172 172 int edgeLocation() const { return -1; } … … 224 224 public: 225 225 String getShaderString() const; 226 bool init(WebKit::WebGraphicsContext3D*, unsigned program );226 bool init(WebKit::WebGraphicsContext3D*, unsigned program, bool usingBindUniform, int* baseUniformIndex); 227 227 private: 228 228 int m_samplerLocation; … … 233 233 FragmentShaderRGBATexAlphaAA(); 234 234 235 void init(WebKit::WebGraphicsContext3D*, unsigned program );235 void init(WebKit::WebGraphicsContext3D*, unsigned program, bool usingBindUniform, int* baseUniformIndex); 236 236 String getShaderString() const; 237 237 … … 250 250 FragmentTexClampAlphaAABinding(); 251 251 252 void init(WebKit::WebGraphicsContext3D*, unsigned program );252 void init(WebKit::WebGraphicsContext3D*, unsigned program, bool usingBindUniform, int* baseUniformIndex); 253 253 int alphaLocation() const { return m_alphaLocation; } 254 254 int samplerLocation() const { return m_samplerLocation; } … … 279 279 String getShaderString() const; 280 280 281 void init(WebKit::WebGraphicsContext3D*, unsigned program );281 void init(WebKit::WebGraphicsContext3D*, unsigned program, bool usingBindUniform, int* baseUniformIndex); 282 282 int alphaLocation() const { return m_alphaLocation; } 283 283 int samplerLocation() const { return m_samplerLocation; } … … 295 295 String getShaderString() const; 296 296 297 void init(WebKit::WebGraphicsContext3D*, unsigned program );297 void init(WebKit::WebGraphicsContext3D*, unsigned program, bool usingBindUniform, int* baseUniformIndex); 298 298 int alphaLocation() const { return m_alphaLocation; } 299 299 int samplerLocation() const { return m_samplerLocation; } … … 313 313 String getShaderString() const; 314 314 315 void init(WebKit::WebGraphicsContext3D*, unsigned program );315 void init(WebKit::WebGraphicsContext3D*, unsigned program, bool usingBindUniform, int* baseUniformIndex); 316 316 317 317 int yTextureLocation() const { return m_yTextureLocation; } … … 336 336 String getShaderString() const; 337 337 338 void init(WebKit::WebGraphicsContext3D*, unsigned program );338 void init(WebKit::WebGraphicsContext3D*, unsigned program, bool usingBindUniform, int* baseUniformIndex); 339 339 int colorLocation() const { return m_colorLocation; } 340 340 … … 348 348 String getShaderString() const; 349 349 350 void init(WebKit::WebGraphicsContext3D*, unsigned program );350 void init(WebKit::WebGraphicsContext3D*, unsigned program, bool usingBindUniform, int* baseUniformIndex); 351 351 int alphaLocation() const { return m_alphaLocation; } 352 352 int texTransformLocation() const { return m_texTransformLocation; } -
trunk/Source/WebCore/platform/graphics/chromium/TextureCopier.cpp
r121375 r121823 35 35 36 36 #if USE(ACCELERATED_COMPOSITING) 37 AcceleratedTextureCopier::AcceleratedTextureCopier(WebKit::WebGraphicsContext3D* context )37 AcceleratedTextureCopier::AcceleratedTextureCopier(WebKit::WebGraphicsContext3D* context, bool usingBindUniforms) 38 38 : m_context(context) 39 , m_usingBindUniforms(usingBindUniforms) 39 40 { 40 41 ASSERT(m_context); … … 91 92 92 93 if (!m_blitProgram->initialized()) 93 m_blitProgram->initialize(context );94 m_blitProgram->initialize(context, m_usingBindUniforms); 94 95 95 96 // TODO: Use EXT_framebuffer_blit if available. -
trunk/Source/WebCore/platform/graphics/chromium/TextureCopier.h
r121204 r121823 54 54 WTF_MAKE_NONCOPYABLE(AcceleratedTextureCopier); 55 55 public: 56 static PassOwnPtr<AcceleratedTextureCopier> create(WebKit::WebGraphicsContext3D* context )56 static PassOwnPtr<AcceleratedTextureCopier> create(WebKit::WebGraphicsContext3D* context, bool usingBindUniforms) 57 57 { 58 return adoptPtr(new AcceleratedTextureCopier(context ));58 return adoptPtr(new AcceleratedTextureCopier(context, usingBindUniforms)); 59 59 } 60 60 virtual ~AcceleratedTextureCopier(); … … 63 63 64 64 protected: 65 explicit AcceleratedTextureCopier(WebKit::WebGraphicsContext3D*);65 AcceleratedTextureCopier(WebKit::WebGraphicsContext3D*, bool usingBindUniforms); 66 66 67 67 private: … … 72 72 Platform3DObject m_positionBuffer; 73 73 OwnPtr<BlitProgram> m_blitProgram; 74 bool m_usingBindUniforms; 74 75 }; 75 76 -
trunk/Source/WebKit/chromium/ChangeLog
r121818 r121823 1 2012-07-03 Alex Sakhartchouk <alexst@chromium.org> 2 3 [chromium] Avoid calling getUniformLocation??() in the compositor startup 4 https://bugs.webkit.org/show_bug.cgi?id=90217 5 6 Reviewed by Adrienne Walker. 7 8 Fixing the build error. 9 10 * tests/TextureCopierTest.cpp: 11 1 12 2012-07-03 Erik Arvidsson <arv@chromium.org> 2 13 -
trunk/Source/WebKit/chromium/tests/TextureCopierTest.cpp
r121204 r121823 79 79 int destTextureId = 2; 80 80 IntSize size(256, 128); 81 OwnPtr<AcceleratedTextureCopier> copier(AcceleratedTextureCopier::create(ccContext->context3D() ));81 OwnPtr<AcceleratedTextureCopier> copier(AcceleratedTextureCopier::create(ccContext->context3D(), false)); 82 82 copier->copyTexture(ccContext.get(), sourceTextureId, destTextureId, size); 83 83 }
Note: See TracChangeset
for help on using the changeset viewer.