Title: [222957] trunk/Source/WebCore
Revision
222957
Author
[email protected]
Date
2017-10-05 22:00:18 -0700 (Thu, 05 Oct 2017)

Log Message

Unreviewed, rolling out r222951 and r222952.
https://bugs.webkit.org/show_bug.cgi?id=177992

"Broke the iOS build and introduced a webgl LayoutTest
failure." (Requested by ryanhaddad on #webkit).

Reverted changesets:

"Lots of missing frames in YouTube360 when fullscreen on
MacBook"
https://bugs.webkit.org/show_bug.cgi?id=177903
http://trac.webkit.org/changeset/222951

"Lots of missing frames in YouTube360 when fullscreen on
MacBook"
https://bugs.webkit.org/show_bug.cgi?id=177903
http://trac.webkit.org/changeset/222952

Patch by Commit Queue <[email protected]> on 2017-10-05

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (222956 => 222957)


--- trunk/Source/WebCore/ChangeLog	2017-10-06 03:51:35 UTC (rev 222956)
+++ trunk/Source/WebCore/ChangeLog	2017-10-06 05:00:18 UTC (rev 222957)
@@ -1,3 +1,23 @@
+2017-10-05  Commit Queue  <[email protected]>
+
+        Unreviewed, rolling out r222951 and r222952.
+        https://bugs.webkit.org/show_bug.cgi?id=177992
+
+        "Broke the iOS build and introduced a webgl LayoutTest
+        failure." (Requested by ryanhaddad on #webkit).
+
+        Reverted changesets:
+
+        "Lots of missing frames in YouTube360 when fullscreen on
+        MacBook"
+        https://bugs.webkit.org/show_bug.cgi?id=177903
+        http://trac.webkit.org/changeset/222951
+
+        "Lots of missing frames in YouTube360 when fullscreen on
+        MacBook"
+        https://bugs.webkit.org/show_bug.cgi?id=177903
+        http://trac.webkit.org/changeset/222952
+
 2017-10-05  Ryosuke Niwa  <[email protected]>
 
         DataTransfer shouldn't contain text/html when performing Paste and Match Style

Modified: trunk/Source/WebCore/PAL/ChangeLog (222956 => 222957)


--- trunk/Source/WebCore/PAL/ChangeLog	2017-10-06 03:51:35 UTC (rev 222956)
+++ trunk/Source/WebCore/PAL/ChangeLog	2017-10-06 05:00:18 UTC (rev 222957)
@@ -1,3 +1,23 @@
+2017-10-05  Commit Queue  <[email protected]>
+
+        Unreviewed, rolling out r222951 and r222952.
+        https://bugs.webkit.org/show_bug.cgi?id=177992
+
+        "Broke the iOS build and introduced a webgl LayoutTest
+        failure." (Requested by ryanhaddad on #webkit).
+
+        Reverted changesets:
+
+        "Lots of missing frames in YouTube360 when fullscreen on
+        MacBook"
+        https://bugs.webkit.org/show_bug.cgi?id=177903
+        http://trac.webkit.org/changeset/222951
+
+        "Lots of missing frames in YouTube360 when fullscreen on
+        MacBook"
+        https://bugs.webkit.org/show_bug.cgi?id=177903
+        http://trac.webkit.org/changeset/222952
+
 2017-10-05  Dean Jackson  <[email protected]>
 
         Lots of missing frames in YouTube360 when fullscreen on MacBook

Modified: trunk/Source/WebCore/PAL/pal/spi/cocoa/QuartzCoreSPI.h (222956 => 222957)


--- trunk/Source/WebCore/PAL/pal/spi/cocoa/QuartzCoreSPI.h	2017-10-06 03:51:35 UTC (rev 222956)
+++ trunk/Source/WebCore/PAL/pal/spi/cocoa/QuartzCoreSPI.h	2017-10-06 05:00:18 UTC (rev 222957)
@@ -91,7 +91,7 @@
 - (void)setContextId:(uint32_t)contextID;
 - (CGSize)size;
 - (void *)regionBeingDrawn;
-- (void)reloadValueForKeyPath:(NSString *)keyPath;
+- (void)setContentsChanged;
 @property BOOL allowsGroupBlending;
 @property BOOL canDrawConcurrently;
 @property BOOL contentsOpaque;

Modified: trunk/Source/WebCore/platform/graphics/GraphicsContext3D.h (222956 => 222957)


--- trunk/Source/WebCore/platform/graphics/GraphicsContext3D.h	2017-10-06 03:51:35 UTC (rev 222956)
+++ trunk/Source/WebCore/platform/graphics/GraphicsContext3D.h	2017-10-06 05:00:18 UTC (rev 222957)
@@ -747,7 +747,7 @@
 
 #if PLATFORM(COCOA)
     PlatformGraphicsContext3D platformGraphicsContext3D() const { return m_contextObj; }
-    Platform3DObject platformTexture() const { return m_texture; }
+    Platform3DObject platformTexture() const { return m_fbo; }
     CALayer* platformLayer() const { return reinterpret_cast<CALayer*>(m_webGLLayer.get()); }
 #else
     PlatformGraphicsContext3D platformGraphicsContext3D();
@@ -1147,16 +1147,12 @@
     RefPtr<ImageData> paintRenderingResultsToImageData();
     bool paintCompositedResultsToCanvas(ImageBuffer*);
 
-#if PLATFORM(COCOA)
+#if PLATFORM(IOS)
     void endPaint();
 #endif
-
 #if PLATFORM(MAC)
-    void allocateIOSurfaceBackingStore(IntSize);
-    void updateFramebufferTextureBackingStoreFromLayer();
     void updateCGLContext();
 #endif
-
     void setContextVisibility(bool);
 
     GraphicsContext3DPowerPreference powerPreferenceUsedForCreation() const { return m_powerPreferenceUsedForCreation; }

Modified: trunk/Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm (222956 => 222957)


--- trunk/Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm	2017-10-06 03:51:35 UTC (rev 222956)
+++ trunk/Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm	2017-10-06 05:00:18 UTC (rev 222957)
@@ -411,7 +411,7 @@
     if ([m_layer contents] != [caLayer contents])
         [m_layer setContents:[caLayer contents]];
     else
-        [m_layer reloadValueForKeyPath:@"contents"];
+        [m_layer setContentsChanged];
     END_BLOCK_OBJC_EXCEPTIONS
 }
 

Modified: trunk/Source/WebCore/platform/graphics/cocoa/GraphicsContext3DCocoa.mm (222956 => 222957)


--- trunk/Source/WebCore/platform/graphics/cocoa/GraphicsContext3DCocoa.mm	2017-10-06 03:51:35 UTC (rev 222956)
+++ trunk/Source/WebCore/platform/graphics/cocoa/GraphicsContext3DCocoa.mm	2017-10-06 05:00:18 UTC (rev 222957)
@@ -479,22 +479,20 @@
         ::glEnable(GL_MULTISAMPLE);
 #endif
 
-    // Create the texture that will be used for the framebuffer.
 #if PLATFORM(IOS)
     ::glGenRenderbuffers(1, &m_texture);
 #else
+    // create a texture to render into
     ::glGenTextures(1, &m_texture);
-    // We bind to GL_TEXTURE_RECTANGLE_EXT rather than TEXTURE_2D because
-    // that's what is required for a texture backed by IOSurface.
-    ::glBindTexture(GL_TEXTURE_RECTANGLE_EXT, m_texture);
-    ::glTexParameteri(GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-    ::glTexParameteri(GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
-    ::glTexParameteri(GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
-    ::glTexParameteri(GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
-    ::glBindTexture(GL_TEXTURE_RECTANGLE_EXT, 0);
+    ::glBindTexture(GL_TEXTURE_2D, m_texture);
+    ::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+    ::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+    ::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+    ::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+    ::glBindTexture(GL_TEXTURE_2D, 0);
 #endif
 
-    // Create the framebuffer object.
+    // create an FBO
     ::glGenFramebuffersEXT(1, &m_fbo);
     ::glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_fbo);
 
@@ -502,7 +500,7 @@
     if (!m_attrs.antialias && (m_attrs.stencil || m_attrs.depth))
         ::glGenRenderbuffersEXT(1, &m_depthStencilBuffer);
 
-    // If necessary, create another framebuffer for the multisample results.
+    // create an multisample FBO
     if (m_attrs.antialias) {
         ::glGenFramebuffersEXT(1, &m_multisampleFBO);
         ::glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_multisampleFBO);
@@ -656,35 +654,20 @@
 #endif
 }
 
+#if PLATFORM(IOS)
 void GraphicsContext3D::endPaint()
 {
     makeContextCurrent();
     if (m_attrs.antialias)
         resolveMultisamplingIfNecessary();
-#if PLATFORM(IOS)
-    // This is the place where we actually push our current rendering
-    // results to the compositor on iOS. On macOS it comes from the
-    // calling function, which is inside WebGLLayer.
     ::glFlush();
     ::glBindRenderbuffer(GL_RENDERBUFFER, m_texture);
     [static_cast<EAGLContext*>(m_contextObj) presentRenderbuffer:GL_RENDERBUFFER];
     [EAGLContext setCurrentContext:nil];
+}
 #endif
-}
 
 #if PLATFORM(MAC)
-void GraphicsContext3D::allocateIOSurfaceBackingStore(IntSize size)
-{
-    LOG(WebGL, "GraphicsContext3D::allocateIOSurfaceBackingStore at %d x %d. (%p)", size.width(), size.height(), this);
-    [m_webGLLayer allocateIOSurfaceBackingStoreWithSize:size usingAlpha:m_attrs.alpha];
-}
-
-void GraphicsContext3D::updateFramebufferTextureBackingStoreFromLayer()
-{
-    LOG(WebGL, "GraphicsContext3D::updateFramebufferTextureBackingStoreFromLayer(). (%p)", this);
-    [m_webGLLayer bindFramebufferToNextAvailableSurface];
-}
-
 void GraphicsContext3D::updateCGLContext()
 {
     if (!m_contextObj)

Modified: trunk/Source/WebCore/platform/graphics/cocoa/WebGLLayer.h (222956 => 222957)


--- trunk/Source/WebCore/platform/graphics/cocoa/WebGLLayer.h	2017-10-06 03:51:35 UTC (rev 222956)
+++ trunk/Source/WebCore/platform/graphics/cocoa/WebGLLayer.h	2017-10-06 05:00:18 UTC (rev 222957)
@@ -25,8 +25,6 @@
 
 #pragma once
 
-#import "IOSurface.h"
-#import "IntSize.h"
 #import <QuartzCore/QuartzCore.h>
 
 namespace WebCore {
@@ -34,21 +32,14 @@
 class GraphicsContext3D;
 }
 
-#if PLATFORM(MAC)
-@interface WebGLLayer : CALayer
+#if PLATFORM(IOS)
+@interface WebGLLayer : CAEAGLLayer
 #else
-@interface WebGLLayer : CAEAGLLayer
+@interface WebGLLayer : CAOpenGLLayer
 #endif
 {
     WebCore::GraphicsContext3D* _context;
     float _devicePixelRatio;
-#if PLATFORM(MAC)
-    std::unique_ptr<WebCore::IOSurface> _contentsBuffer;
-    std::unique_ptr<WebCore::IOSurface> _drawingBuffer;
-    std::unique_ptr<WebCore::IOSurface> _spareBuffer;
-    WebCore::IntSize _bufferSize;
-    BOOL _usingAlpha;
-#endif
 }
 
 @property (nonatomic) WebCore::GraphicsContext3D* context;
@@ -57,10 +48,5 @@
 
 - (CGImageRef)copyImageSnapshotWithColorSpace:(CGColorSpaceRef)colorSpace;
 
-#if PLATFORM(MAC)
-- (void)allocateIOSurfaceBackingStoreWithSize:(WebCore::IntSize)size usingAlpha:(BOOL)usingAlpha;
-- (void)bindFramebufferToNextAvailableSurface;
-#endif
-
 @end
 

Modified: trunk/Source/WebCore/platform/graphics/cocoa/WebGLLayer.mm (222956 => 222957)


--- trunk/Source/WebCore/platform/graphics/cocoa/WebGLLayer.mm	2017-10-06 03:51:35 UTC (rev 222956)
+++ trunk/Source/WebCore/platform/graphics/cocoa/WebGLLayer.mm	2017-10-06 05:00:18 UTC (rev 222957)
@@ -33,11 +33,10 @@
 #import "GraphicsLayer.h"
 #import "GraphicsLayerCA.h"
 #import "PlatformCALayer.h"
-#import <pal/spi/cocoa/QuartzCoreSPI.h>
 #import <wtf/FastMalloc.h>
 #import <wtf/RetainPtr.h>
 
-#if PLATFORM(MAC)
+#if !PLATFORM(IOS)
 #import <OpenGL/OpenGL.h>
 #import <OpenGL/gl.h>
 #endif
@@ -54,37 +53,113 @@
     self = [super init];
     _devicePixelRatio = context->getContextAttributes().devicePixelRatio;
 #if PLATFORM(MAC)
-    if (!context->getContextAttributes().alpha)
-        self.opaque = YES;
-    self.transform = CATransform3DIdentity;
     self.contentsScale = _devicePixelRatio;
+    self.colorspace = sRGBColorSpaceRef();
 #endif
     return self;
 }
 
-#if PLATFORM(MAC)
-// On Mac, we need to flip the layer to take into account
-// that the IOSurface provides content in Y-up. This
-// means that any incoming transform (unlikely, since this
-// is a contents layer) and anchor point must add a
-// Y scale of -1 and make sure the transform happens from
-// the top.
+#if !PLATFORM(IOS)
+-(CGLPixelFormatObj)copyCGLPixelFormatForDisplayMask:(uint32_t)mask
+{
+    // We're basically copying the pixel format object from the existing
+    // WebGL context, so we don't need to use the display mask.
+    UNUSED_PARAM(mask);
 
-- (void)setTransform:(CATransform3D)t
+    CGLPixelFormatObj webglPixelFormat = CGLGetPixelFormat(_context->platformGraphicsContext3D());
+
+    Vector<CGLPixelFormatAttribute> attribs;
+    GLint value;
+
+    CGLDescribePixelFormat(webglPixelFormat, 0, kCGLPFAColorSize, &value);
+    attribs.append(kCGLPFAColorSize);
+    attribs.append(static_cast<CGLPixelFormatAttribute>(value));
+
+    // We don't need to specify a depth size since we're only
+    // using this context as a 2d blit destination for the WebGL FBO.
+    attribs.append(kCGLPFADepthSize);
+    attribs.append(static_cast<CGLPixelFormatAttribute>(0));
+
+    CGLDescribePixelFormat(webglPixelFormat, 0, kCGLPFAAllowOfflineRenderers, &value);
+    if (value)
+        attribs.append(kCGLPFAAllowOfflineRenderers);
+
+    CGLDescribePixelFormat(webglPixelFormat, 0, kCGLPFAAccelerated, &value);
+    if (value)
+        attribs.append(kCGLPFAAccelerated);
+
+    CGLDescribePixelFormat(webglPixelFormat, 0, kCGLPFAOpenGLProfile, &value);
+    if (value) {
+        attribs.append(kCGLPFAOpenGLProfile);
+        attribs.append(static_cast<CGLPixelFormatAttribute>(value));
+    }
+
+    attribs.append(static_cast<CGLPixelFormatAttribute>(0));
+
+    CGLPixelFormatObj pixelFormat;
+    GLint numPixelFormats = 0;
+    CGLChoosePixelFormat(attribs.data(), &pixelFormat, &numPixelFormats);
+
+    ASSERT(pixelFormat);
+    ASSERT(numPixelFormats);
+
+    return pixelFormat;
+}
+
+-(CGLContextObj)copyCGLContextForPixelFormat:(CGLPixelFormatObj)pixelFormat
 {
-    [super setTransform:CATransform3DScale(t, 1, -1, 1)];
+    CGLContextObj contextObj;
+    CGLCreateContext(pixelFormat, _context->platformGraphicsContext3D(), &contextObj);
+    return contextObj;
 }
 
-- (void)setAnchorPoint:(CGPoint)p
+-(void)drawInCGLContext:(CGLContextObj)glContext pixelFormat:(CGLPixelFormatObj)pixelFormat forLayerTime:(CFTimeInterval)timeInterval displayTime:(const CVTimeStamp *)timeStamp
 {
-    [super setAnchorPoint:CGPointMake(p.x, 1.0 - p.y)];
+    if (!_context)
+        return;
+
+    _context->prepareTexture();
+
+    CGLSetCurrentContext(glContext);
+
+    CGRect frame = [self frame];
+    frame.size.width *= _devicePixelRatio;
+    frame.size.height *= _devicePixelRatio;
+
+    // draw the FBO into the layer
+    glViewport(0, 0, frame.size.width, frame.size.height);
+    glMatrixMode(GL_PROJECTION);
+    glLoadIdentity();
+    glOrtho(-1, 1, -1, 1, -1, 1);
+    glMatrixMode(GL_MODELVIEW);
+    glLoadIdentity();
+
+    glEnable(GL_TEXTURE_2D);
+    glBindTexture(GL_TEXTURE_2D, _context->platformTexture());
+
+    glBegin(GL_TRIANGLE_FAN);
+        glTexCoord2f(0, 0);
+        glVertex2f(-1, -1);
+        glTexCoord2f(1, 0);
+        glVertex2f(1, -1);
+        glTexCoord2f(1, 1);
+        glVertex2f(1, 1);
+        glTexCoord2f(0, 1);
+        glVertex2f(-1, 1);
+    glEnd();
+
+    glBindTexture(GL_TEXTURE_2D, 0);
+    glDisable(GL_TEXTURE_2D);
+
+    // Call super to finalize the drawing. By default all it does is call glFlush().
+    [super drawInCGLContext:glContext pixelFormat:pixelFormat forLayerTime:timeInterval displayTime:timeStamp];
 }
-#endif
 
 static void freeData(void *, const void *data, size_t /* size */)
 {
     fastFree(const_cast<void *>(data));
 }
+#endif
 
 -(CGImageRef)copyImageSnapshotWithColorSpace:(CGColorSpaceRef)colorSpace
 {
@@ -128,18 +203,11 @@
     if (!_context)
         return;
 
+#if PLATFORM(IOS)
     _context->endPaint();
-
-#if PLATFORM(MAC)
-    _context->prepareTexture();
-    if (_drawingBuffer) {
-        std::swap(_contentsBuffer, _drawingBuffer);
-        self.contents = _contentsBuffer->asLayerContents();
-        [self reloadValueForKeyPath:@"contents"];
-        [self bindFramebufferToNextAvailableSurface];
-    }
+#else
+    [super display];
 #endif
-
     _context->markLayerComposited();
     PlatformCALayer* layer = PlatformCALayer::platformCALayer(self);
     if (layer && layer->owner())
@@ -146,37 +214,6 @@
         layer->owner()->platformCALayerLayerDidDisplay(layer);
 }
 
-#if PLATFORM(MAC)
-- (void)allocateIOSurfaceBackingStoreWithSize:(IntSize)size usingAlpha:(BOOL)usingAlpha
-{
-    _bufferSize = size;
-    _usingAlpha = usingAlpha;
-    _contentsBuffer = WebCore::IOSurface::create(size, sRGBColorSpaceRef());
-    _drawingBuffer = WebCore::IOSurface::create(size, sRGBColorSpaceRef());
-    ASSERT(_contentsBuffer);
-    ASSERT(_drawingBuffer);
-}
-
-- (void)bindFramebufferToNextAvailableSurface
-{
-    GC3Denum texture = _context->platformTexture();
-    glBindTexture(GL_TEXTURE_RECTANGLE_ARB, texture);
-
-    if (_drawingBuffer && _drawingBuffer->isInUse()) {
-        if (!_spareBuffer)
-            _spareBuffer = WebCore::IOSurface::create(_bufferSize, sRGBColorSpaceRef());
-        std::swap(_drawingBuffer, _spareBuffer);
-    }
-
-    IOSurfaceRef ioSurface = _drawingBuffer->surface();
-    GC3Denum internalFormat = _usingAlpha ? GL_RGBA : GL_RGB;
-
-    // Link the IOSurface to the texture.
-    CGLError error = CGLTexImageIOSurface2D(_context->platformGraphicsContext3D(), GL_TEXTURE_RECTANGLE_ARB, internalFormat, _bufferSize.width(), _bufferSize.height(), GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, ioSurface, 0);
-    ASSERT_UNUSED(error, error == kCGLNoError);
-}
-#endif
-
 @end
 
 #endif // ENABLE(WEBGL)

Modified: trunk/Source/WebCore/platform/graphics/mac/WebLayer.mm (222956 => 222957)


--- trunk/Source/WebCore/platform/graphics/mac/WebLayer.mm	2017-10-06 03:51:35 UTC (rev 222956)
+++ trunk/Source/WebCore/platform/graphics/mac/WebLayer.mm	2017-10-06 05:00:18 UTC (rev 222957)
@@ -30,7 +30,6 @@
 #import "GraphicsLayerCA.h"
 #import "PlatformCALayer.h"
 #import <QuartzCore/QuartzCore.h>
-#import <pal/spi/cocoa/QuartzCoreSPI.h>
 #import <wtf/SetForScope.h>
 
 #if PLATFORM(IOS)
@@ -39,6 +38,10 @@
 #import "WebCoreThread.h"
 #endif
 
+@interface CALayer(WebCoreCALayerPrivate)
+- (void)reloadValueForKeyPath:(NSString *)keyPath;
+@end
+
 using namespace WebCore;
 
 #if PLATFORM(IOS)

Modified: trunk/Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGL.cpp (222956 => 222957)


--- trunk/Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGL.cpp	2017-10-06 03:51:35 UTC (rev 222956)
+++ trunk/Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGL.cpp	2017-10-06 05:00:18 UTC (rev 222957)
@@ -29,15 +29,16 @@
 #if ENABLE(GRAPHICS_CONTEXT_3D)
 
 #include "GraphicsContext3D.h"
-
 #if PLATFORM(IOS)
 #include "GraphicsContext3DIOS.h"
 #endif
+
 #include "Extensions3DOpenGL.h"
 #include "IntRect.h"
 #include "IntSize.h"
 #include "NotImplemented.h"
 #include "TemporaryOpenGLSetting.h"
+
 #include <algorithm>
 #include <cstring>
 #include <wtf/MainThread.h>
@@ -69,17 +70,6 @@
     notImplemented();
 }
 
-#if PLATFORM(MAC)
-static void wipeAlphaChannelFromPixels(int width, int height, unsigned char* pixels)
-{
-    // We can assume this doesn't overflow because the calling functions
-    // use checked arithmetic.
-    int totalBytes = width * height * 4;
-    for (int i = 0; i < totalBytes; i += 4)
-        pixels[i + 3] = 255;
-}
-#endif
-
 void GraphicsContext3D::readPixelsAndConvertToBGRAIfNecessary(int x, int y, int width, int height, unsigned char* pixels)
 {
     // NVIDIA drivers have a bug where calling readPixels in BGRA can return the wrong values for the alpha channel when the alpha is off for the context.
@@ -108,11 +98,6 @@
 #endif
     } else
         ::glReadPixels(x, y, width, height, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, pixels);
-
-#if PLATFORM(MAC)
-    if (!m_attrs.alpha)
-        wipeAlphaChannelFromPixels(width, height, pixels);
-#endif
 }
 
 void GraphicsContext3D::validateAttributes()
@@ -185,10 +170,6 @@
     ::glBindRenderbuffer(GL_RENDERBUFFER, m_texture);
     ::glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, m_texture);
     setRenderbufferStorageFromDrawable(m_currentWidth, m_currentHeight);
-#elif PLATFORM(MAC)
-    allocateIOSurfaceBackingStore(IntSize(width, height));
-    updateFramebufferTextureBackingStoreFromLayer();
-    ::glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_RECTANGLE_ARB, m_texture, 0);
 #else
     ::glBindTexture(GL_TEXTURE_2D, m_texture);
     ::glTexImage2D(GL_TEXTURE_2D, 0, m_internalColorFormat, width, height, 0, colorFormat, GL_UNSIGNED_BYTE, 0);
@@ -461,11 +442,6 @@
     ::glReadPixels(x, y, width, height, format, type, data);
     if (m_attrs.antialias && m_state.boundFBO == m_multisampleFBO)
         ::glBindFramebufferEXT(GraphicsContext3D::FRAMEBUFFER, m_multisampleFBO);
-
-#if PLATFORM(MAC)
-    if (!m_attrs.alpha && (format == GraphicsContext3D::RGBA || format == GraphicsContext3D::BGRA) && (m_state.boundFBO == m_fbo || (m_attrs.antialias && m_state.boundFBO == m_multisampleFBO)))
-        wipeAlphaChannelFromPixels(width, height, static_cast<unsigned char*>(data));
-#endif
 }
 
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to