mirror of
https://github.com/SerenityOS/serenity
synced 2024-09-06 17:06:31 +00:00
![Timothy Flynn](/assets/img/avatar_default.png)
In doing so, this removes all uses of the Encoder's stream operator, except for where it is currently still used in the generated IPC code. So the stream operator currently discards any errors, which is the existing behavior. A subsequent commit will propagate the errors.
45 lines
783 B
C++
45 lines
783 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>
|
|
#include <LibIPC/Forward.h>
|
|
|
|
namespace Gfx {
|
|
|
|
class ShareableBitmap {
|
|
public:
|
|
ShareableBitmap() = default;
|
|
|
|
enum Tag { ConstructWithKnownGoodBitmap };
|
|
ShareableBitmap(NonnullRefPtr<Gfx::Bitmap>, Tag);
|
|
|
|
bool is_valid() const { return m_bitmap; }
|
|
|
|
Bitmap const* bitmap() const { return m_bitmap; }
|
|
Bitmap* bitmap() { return m_bitmap; }
|
|
|
|
private:
|
|
friend class Bitmap;
|
|
|
|
RefPtr<Bitmap> m_bitmap;
|
|
};
|
|
|
|
}
|
|
|
|
namespace IPC {
|
|
|
|
template<>
|
|
ErrorOr<void> encode(Encoder&, Gfx::ShareableBitmap const&);
|
|
|
|
template<>
|
|
ErrorOr<Gfx::ShareableBitmap> decode(Decoder&);
|
|
|
|
}
|