/* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*- * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef GFX_SHAREDTEXTUREIMAGE_H #define GFX_SHAREDTEXTUREIMAGE_H #include "GLContextProvider.h" // for GLContextProvider #include "ImageContainer.h" // for Image #include "ImageTypes.h" // for ImageFormat::SHARED_TEXTURE #include "gfxPoint.h" // for gfxIntSize #include "nsCOMPtr.h" // for already_AddRefed #include "nsSize.h" // for nsIntSize class gfxASurface; // Split into a separate header from ImageLayers.h due to GLContext.h dependence // Implementation remains in ImageLayers.cpp namespace mozilla { namespace layers { class SharedTextureImage : public Image { public: struct Data { gl::SharedTextureHandle mHandle; gl::SharedTextureShareType mShareType; gfxIntSize mSize; bool mInverted; }; void SetData(const Data& aData) { mData = aData; } const Data* GetData() { return &mData; } gfxIntSize GetSize() { return mData.mSize; } virtual already_AddRefed GetAsSurface() { return nullptr; } SharedTextureImage() : Image(nullptr, SHARED_TEXTURE) {} private: Data mData; }; } // layers } // mozilla #endif // GFX_SHAREDTEXTUREIMAGE_H