1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-16 14:35:00 +00:00
serenity/Userland/Libraries/LibGfx/ShareableBitmap.h
Lenny Maiorani 9c56a83b76 Libraries: Use default constructors/destructors in LibGfx
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#cother-other-default-operation-rules

"The compiler is more likely to get the default semantics right and
you cannot implement these functions better than the compiler."
2022-03-17 17:23:49 +00:00

40 lines
730 B
C++

/*
* Copyright (c) 2020, Andreas Kling <kling@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/RefPtr.h>
#include <LibGfx/Bitmap.h>
#include <LibGfx/Size.h>
namespace Gfx {
class ShareableBitmap {
public:
ShareableBitmap() = default;
enum Tag { ConstructWithKnownGoodBitmap };
ShareableBitmap(NonnullRefPtr<Gfx::Bitmap>, Tag);
bool is_valid() const { return m_bitmap; }
const Bitmap* bitmap() const { return m_bitmap; }
Bitmap* bitmap() { return m_bitmap; }
private:
friend class Bitmap;
RefPtr<Bitmap> m_bitmap;
};
}
namespace IPC {
bool encode(Encoder&, const Gfx::ShareableBitmap&);
ErrorOr<void> decode(Decoder&, Gfx::ShareableBitmap&);
}