Allow more buffer formats in the IOSurface pool
[WebKit-https.git] / Source / WebCore / platform / graphics / cocoa / IOSurface.h
index 8ad18312af14cdb211c6d1fe786976e756f126cd..cbcf56cde2d1e28810588bcecdb5b4da0b4d2b51 100644 (file)
@@ -46,11 +46,13 @@ public:
     };
 
     WEBCORE_EXPORT static std::unique_ptr<IOSurface> create(IntSize, ColorSpace, Format = Format::RGBA);
     };
 
     WEBCORE_EXPORT static std::unique_ptr<IOSurface> create(IntSize, ColorSpace, Format = Format::RGBA);
-    WEBCORE_EXPORT static std::unique_ptr<IOSurface> create(IntSize, IntSize contextSize, ColorSpace);
+    WEBCORE_EXPORT static std::unique_ptr<IOSurface> create(IntSize, IntSize contextSize, ColorSpace, Format = Format::RGBA);
     WEBCORE_EXPORT static std::unique_ptr<IOSurface> createFromSendRight(const MachSendRight&, ColorSpace);
     static std::unique_ptr<IOSurface> createFromSurface(IOSurfaceRef, ColorSpace);
     WEBCORE_EXPORT static std::unique_ptr<IOSurface> createFromImage(CGImageRef);
 
     WEBCORE_EXPORT static std::unique_ptr<IOSurface> createFromSendRight(const MachSendRight&, ColorSpace);
     static std::unique_ptr<IOSurface> createFromSurface(IOSurfaceRef, ColorSpace);
     WEBCORE_EXPORT static std::unique_ptr<IOSurface> createFromImage(CGImageRef);
 
+    WEBCORE_EXPORT static void moveToPool(std::unique_ptr<IOSurface>&&);
+
     static IntSize maximumSize();
 
     WEBCORE_EXPORT MachSendRight createSendRight() const;
     static IntSize maximumSize();
 
     WEBCORE_EXPORT MachSendRight createSendRight() const;
@@ -95,10 +97,10 @@ public:
 
 private:
     IOSurface(IntSize, ColorSpace, Format);
 
 private:
     IOSurface(IntSize, ColorSpace, Format);
-    IOSurface(IntSize, IntSize contextSize, ColorSpace);
+    IOSurface(IntSize, IntSize contextSize, ColorSpace, Format);
     IOSurface(IOSurfaceRef, ColorSpace);
 
     IOSurface(IOSurfaceRef, ColorSpace);
 
-    static std::unique_ptr<IOSurface> surfaceFromPool(IntSize, IntSize contextSize, ColorSpace);
+    static std::unique_ptr<IOSurface> surfaceFromPool(IntSize, IntSize contextSize, ColorSpace, Format);
     IntSize contextSize() const { return m_contextSize; }
     void setContextSize(IntSize);
 
     IntSize contextSize() const { return m_contextSize; }
     void setContextSize(IntSize);